1

コア ロジックに C++ コードを使用して、android/iOS/windows 用のアプリケーションを開発しています。このアプリケーションは無料のファジー ロジック ライブラリを使用しており、Windows モバイル、iOS、およびローカルの Ubuntu マシンで完全に動作しますが、Android ではまったく動作しません。

アプリケーションは、sd カードから .fcl ファイルを読み取り、無料のファジー ロジック ライブラリ パーサーを使用して解析します。問題は、パーサーが解析のランダムな段階で動かなくなることです。

私のプロジェクト設定に関するいくつかのメモ:

  • manifest.xml で sdcard の Android 読み取り/書き込み権限を有効にしました。

  • 私が実行しようとしているコードは、無料のファジー ロジック ライブラリ Web サイトの基本的な例です。

  • stl サポートと -frtti コンパイラ フラグに stlport_static ライブラリを使用しています。

私の質問は次のとおりです:ファイルのエンコードや設定していない権限など、Android固有の何かが欠けていますか?

私が考えたいくつかのメモ:

  • 私の知る限り、SD カード上のファイルは圧縮されておらず、ファイルを部分的に解析できるため、ファイル圧縮は問題になりません。

  • GPL ライセンスのライブラリを使用できないため、他のファジー論理ライブラリを使用することはできません。私が見つけた唯一の他のライブラリは、マニュアルやハウツーがなく、fcl 標準を解析できませんでした。

  • 無料のファジー ロジック ライブラリは、多くの wchar_t を使用しており、これが問題になる可能性があります。

お時間をいただきありがとうございました。

4

1 に答える 1

0

いくつかのAndroidマニュアルといくつかのGoogleの悪用を調べた後、問題を見つけました。現在、Androidはwchar_tタイプをサポートしていません。それを使用することはできますが、結果は他のオペレーティングシステムと同じにはなりません。

フリーファジーロジックライブラリのすべてのwchar_tおよびwstringタイプを、対応するcharおよびstringタイプに変更することで、パーサーを機能させることができました。まあ、まだいくつかの巧妙な矛盾がありますが、私が処理できないものは何もありません;)。

結論: AndroidC++プログラムではワイド文字を使用しないでください。

お時間を割いていただきありがとうございます

于 2012-11-30T10:15:40.903 に答える