我有一个用 C++ 编写的引擎,可以与 AndroidStudio 中的 JNI 集成。我阅读并遵循我找到的所有教程。
在 Cpp 文件中有标头的导入,其中包括 2 个用大括号括起来的映射,像这样初始化(只是示例):
第一个以 2500 行开头...第二个是这样的:
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"}..} 从 '<bracket-enclosed initializer list>' 转换为 'std::地图<StateEnum, std::string>'
我还尝试将 c++ 文件编译为库,然后将其集成到我的 Android 项目中。结果是一样的。
任何人都可以帮助我。我不想将 2500 行地图初始化(使用 map.add(...))翻译成 5000 行。