AndroidStudio の JNI と統合するために C++ でエンジンを記述しています。見つけたすべてのチュートリアルを読んで従います。
Cppファイルには、そのように初期化された中括弧で囲まれた2つのマップを含むヘッダーのインポートがあります(単なる例):
最初のものは2500行で初期化されています... 2番目のものはそのようなものです:
std::map <StateEnum, std::string> StateToString = {
{ state_one, "State 1" },
{ state_two, "State 2" },
{ state_three, "State 3" },
{ state_four, "State 4" }
};
アプリケーション.mk
APP_ABI := all
APP_STL := stlport_static
APP_CFLAGS := -std=c++11 -fPIC
そして、ここにエラーがあります:
jni/My_header.h:line: エラー: '{{state_one, "State 1"}, {state_two, "State 2"}..} を '< ブレースで囲まれた初期化子リスト>' から 'std:: map< StateEnum, std::string>'
また、c++ ファイルをライブラリにコンパイルしてから、それを Android プロジェクトに統合しようとしました。そして結果は同じです。
誰でも私を助けることができます。2500 行のマップ初期化 (map.add(...) を使用) を 5000 行に変換したくありませんでした。