环境:
Mac 10.10,cocos2d-js 3.1
1、cocos new 命令生成新的项目Plugin
2、cocos run -p android 运行项目,可以成功运行
3、安装官方教程 http://www.cocos2d-x.org/docs/manual/framework/html5/jsb/plugin-x/how-to-use-plugin-x-on-android/zh 在Android项目上集成Plugin-x,遇到以下几个问题
问题:
1、运行frameworks/js-bindings/cocos2d-x/plugin/tools/gameDevGuide.sh脚本,修改项目配置后,再次执行cocos run -p android,报错,信息如下
…(省略一些错误信息,形式类似以下这种)
/Users/XXX/workspace/XXX/frameworks/runtime-src/proj.android/…/…/js-bindings/external/spidermonkey/prebuilt/android/armeabi/libjs_static.a(jscntxt.o)(.text+0x1138): error: undefined reference to ‘vtable for std::basic_ifstream<char, std::char_traits >’
/Users/XXX/workspace/XXX/frameworks/runtime-src/proj.android/…/…/js-bindings/external/spidermonkey/prebuilt/android/armeabi/libjs_static.a(jscntxt.o)(.text+0x1164): error: undefined reference to ‘vtable for std::basic_filebuf<char, std::char_traits >’
/Users/XXX/workspace/XXX/frameworks/runtime-src/proj.android/…/…/js-bindings/external/spidermonkey/prebuilt/android/armeabi/libjs_static.a(jscntxt.o)(.text+0x1168): error: undefined reference to ‘vtable for std::basic_streambuf<char, std::char_traits >’
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
2、在AppDelegate.cpp中添加:
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS || CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include “jsb_cocos2dx_pluginx_auto.hpp”
#include “jsb_pluginx_extension_registration.h”
#endif
按照这个添加后,执行 cocos run -p android ,会提示找不到jsb_cocos2dx_pluginx_auto.hpp、jsb_pluginx_extension_registration.h这两个文件。后来我把这两个文件改成相对路径
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include “…/…/js-bindings/cocos2d-x/plugin/jsbindings/auto/jsb_cocos2dx_pluginx_auto.hpp”
#include “…/…/js-bindings/cocos2d-x/plugin/jsbindings/manual/jsb_pluginx_extension_registration.h”
#endif
这样虽然找到了,但是报这个错误
jni/…/…/Classes/AppDelegate.cpp:114: error: undefined reference to ‘register_all_pluginx_protocols(JSContext*, JSObject*)’
jni/…/…/Classes/AppDelegate.cpp:114: error: undefined reference to ‘register_pluginx_js_extensions(JSContext*, JSObject*)’
请问以上这些问题该如何解决,android新手,找不到问题。。。
