Cocos2dx 环境编译出错:jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings'
jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings' in import path.
解决方法:
在eclipse中,右键:项目工程-->Properties-->C/C++--->Environment目录下设置NDK_MODULE_PATH字段。对应字段的value值设定成你cocos2d源码的如下目录:
$(call import-add-path, D:\cocos2dx-3.10)\
$(call import-add-path, D:\cocos2dx-3.10\cocos)\
$(call import-add-path,D:\cocos2dx-3.10\external\)\
输入样式如下:
-----------------------------------2018-03-10补充-------------------------
NDK版本由android-ndk-r9d 改成:android-ndk-r10c即可。
解决方法:
切入点,invalid jobject。
JNI的调用一般涉及JNIEnv *, jclass,jobject一类命名方式的变量,感兴趣的网上可以单查一下,这里就不做解释了,jobject代表传入的非法参数,自己这边的问题是lua层通过JNI回调lua时,传入了一个nil数值,导致JNI报错,应用直接闪退报错。
3,编译时提示:error: expected ';' at end of member declaration。
解决方法:
援引:点击打开链接,感谢原作者的辛勤劳作。
在Android编译环境的时候,出现一大堆的编译出错,类似“error: expected ';' at end of member declaration”之类的,看了一些编译错误,都是cocos2d-x库里面的代码出错。
经过分析,怀疑可能是编译环境的问题,因为cocos2d-x使用了很多C++11的新特性,这有可能导致老的编译器出错,看了一下NDK下面的文件以及toolchains里面的内容,windows编译器默认使用4.6,我尝试把4.6改成4.8再次编译不报错了,成功了,把修改的地方分享给大家一下。
在项目->属性下面,修改成下图的样子即可。
即把builder setting改成ndk-build NDK_TOOLCHAIN_VERSION=4.8