Я разрабатываю приложение для Android / iOS / Windows с использованием кода C ++ для основной логики. Приложение использует бесплатную библиотеку нечеткой логики и прекрасно работает на Windows Mobile, iOS и на моей локальной машине с Ubuntu, но не вполне работает под Android.
Приложение читает файл .fcl с SD-карты, а затем анализирует его, используя бесплатный анализатор библиотеки нечеткой логики. Проблема в том, что синтаксический анализатор застревает на случайных этапах парсинга.
Некоторые примечания к настройкам моего проекта:
Я включил в Android разрешения на чтение / запись для sdcard в manifest.xml.
Код, который я пытаюсь запустить, является базовым примером с бесплатного веб-сайта библиотеки нечеткой логики.
Я использую библиотеку stlport_static для поддержки stl и флаг компилятора -frtti.
Мой вопрос: Я что-то упустил для Android, например, кодировку файла или некоторые разрешения, которые я не установил?
Некоторые заметки, о которых я думал:
Сжатие файлов не должно быть проблемой, потому что, насколько мне известно, файлы на SD-карте не сжимаются, и я могу проанализировать файл частично.
Использование других библиотек нечеткой логики не допускается, потому что я не могу использовать лицензированные библиотеки GPL. Единственная другая библиотека, которую я нашел, не имела инструкции / как и не могла разобрать стандарт fcl.
Бесплатная библиотека нечеткой логики использует много wchar_t, что может быть проблемой.
Спасибо за ваше время и, надеюсь, за помощь;)
Хорошо, после просмотра некоторых руководств по Android и некоторых злоупотреблений Google я нашел проблему. В настоящее время Android не поддерживает тип wchar_t. Ну, вы можете использовать его, но результаты не будут такими же, как в любой другой операционной системе.
Изменив все типы wchar_t и wstring в свободной библиотеке нечеткой логики на соответствующие им типы char и string, я смог заставить парсер работать. Ну, вроде бы, есть еще некоторые несоответствия в ловкости, но я ничего не могу с этим поделать;).
Заключение: Не используйте широкие символы в программах Android C ++.
Спасибо за ваше время & Помогите
Других решений пока нет …