[已解决]cocos2d-x 3.0 rc 安卓报链接错误

error: undefined reference to ‘cocostudio::GUIReader::getInstance()’
jni/…/…/Classes/HelloWorldScene.cpp:97: error: undefined reference to ‘cocostudio::GUIReader::widgetFromJsonFile(char const*)’
jni/…/…/cocos2d/cocos/ui/UILayoutDefine.h:54: error: undefined reference to ‘cocos2d::ui::Margin::Margin()’
jni/…/…/Classes/Utilities/HttpResultHandler.cpp:77: error: undefined reference to ‘cocos2d::network::HttpClient::getInstance()’
jni/…/…/Classes/Utilities/HttpResultHandler.cpp:78: error: undefined reference to ‘cocos2d::network::HttpClient::getInstance()’
jni/…/…/Classes/Utilities/HttpResultHandler.cpp:78: error: undefined reference to ‘cocos2d::network::HttpClient::send(cocos2d::network::HttpRequest*)’

我在MK里面添加了以下内容,还是不行

LOCAL_C_INCLUDES := (LOCAL_PATH)/../../Classes LOCAL_C_INCLUDES += (LOCAL_PATH)/…/…/Classes/Utilities
LOCAL_C_INCLUDES += (LOCAL_PATH)/../../cocos2d LOCAL_C_INCLUDES += (LOCAL_PATH)/…/…/cocos2d/cocos
LOCAL_C_INCLUDES += (LOCAL_PATH)/../../cocos2d/cocos/editor-support LOCAL_C_INCLUDES += (LOCAL_PATH)/…/…/cocos2d/external
LOCAL_C_INCLUDES += $(LOCAL_PATH)/…/…/Classes/poker

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_gui_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static

我也发现这个问题请问如何解决

(call import-module,2d) (call import-module,audio/android)
(call import-module,extensions) (call import-module,network)
(call import-module,ui) (call import-module,editor-support/cocostudio)

加上这个就可以,这里面是你要用的模块。害得我又看了一次MK的语法,吐血啊

嗯 我刚才也发现了 谢谢!

我加上这些东西也不行,是不是还要先编译或者生成一下这些包?

提示什么样的错误?
你的COCOS2DX_HOME , NDK_MODULE_PATH是否设置正确?


D:\cocos2dx\HelloCocos>cocos.py run -p android
Runing command: compile
Building mode: debug
building native
building native
The Selected NDK toolchain version was 4.8 !
running: 'D:\android\android-ndk-r9d\ndk-build -j4 -C D:\cocos2dx\HelloCocos\pro
j.android -j1 NDK_MODULE_PATH=D:\cocos2dx\HelloCocos\proj.android\../cocos2d;D:\
cocos2dx\HelloCocos\proj.android\../cocos2d/cocos;D:\cocos2dx\HelloCocos\proj.an
droid\../cocos2d/external'

Android NDK: WARNING:D:\cocos2dx\HelloCocos\proj.android\../cocos2d/cocos/2d/And
roid.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries

Android NDK: WARNING:D:\cocos2dx\HelloCocos\proj.android\../cocos2d/cocos/2d/pla
tform/android/Android.mk:cocos2dxandroid_static: LOCAL_LDLIBS is always ignored
for static libraries
make.exe: Entering directory `D:/cocos2dx/HelloCocos/proj.android'
 SharedLibrary  : libcocos2dcpp.so
jni/../../cocos2d/cocos/ui/UILayoutDefine.h:54: error: undefined reference to 'c
ocos2d::ui::Margin::Margin()'
jni/../../Classes/WelcomeScene.cpp:22: error: undefined reference to 'cocostudio
::GUIReader::getInstance()'
jni/../../Classes/WelcomeScene.cpp:22: error: undefined reference to 'cocostudio
::GUIReader::widgetFromJsonFile(char const*)'
jni/../../Classes/WelcomeScene.cpp:30: error: undefined reference to 'cocos2d::u
i::Button::setTitleText(std::string const&)'
jni/../../Classes/WelcomeScene.cpp:31: error: undefined reference to 'cocos2d::u
i::Widget::addTouchEventListener(cocos2d::Ref*, void (cocos2d::Ref::*)(cocos2d::
Ref*, cocos2d::ui::TouchEventType))'
jni/../../Classes/WelcomeScene.cpp:39: error: undefined reference to 'cocostudio
::ArmatureDataManager::getInstance()'
jni/../../Classes/WelcomeScene.cpp:39: error: undefined reference to 'cocostudio
::ArmatureDataManager::addArmatureFileInfo(std::string const&)'
jni/../../Classes/WelcomeScene.cpp:40: error: undefined reference to 'cocostudio
::Armature::create(std::string const&)'
jni/../../Classes/WelcomeScene.cpp:53: error: undefined reference to 'cocostudio
::ArmatureAnimation::setMovementEventCallFunc(std::function<void (cocostudio::Ar
mature*, cocostudio::MovementEventType, std::string const&)>)'
jni/../../Classes/WelcomeScene.cpp:56: error: undefined reference to 'typeinfo f
or cocos2d::ui::Button'
jni/../../cocos2d/cocos/ui/UILayoutDefine.h:54: error: undefined reference to 'c
ocos2d::ui::Margin::Margin()'
collect2.exe: error: ld returned 1 exit status
make.exe: ***  Error 1
make.exe: Leaving directory `D:/cocos2dx/HelloCocos/proj.android'
Error running command, return code: 2

然后JNI/Android.mk里面我也加了这些代码的


$(call import-module,2d)
$(call import-module,audio/android)
$(call import-module,Box2D)
$(call import-module,ui)
$(call import-module,editor-support/cocostudio)
$(call import-module,extensions)

:6:我跟楼上一个样,各种报error: undefined reference to ‘cocostudio::GUIReader::getInstance()’,求解决的人指点迷津啊,小弟在此先谢过了。

找proj.android\jni\Android.mk文件,

LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocosbuilder_static

LOCAL_WHOLE_STATIC_LIBRARIES += spine_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static

LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

$(call import-module,Box2D)

$(call import-module,editor-support/cocosbuilder)

$(call import-module,editor-support/spine)

$(call import-module,editor-support/cocostudio)

$(call import-module,network)

$(call import-module,extensions)

原本
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static

$(call import-module,editor-support/cocostudio)
是注释掉的,把这两行打开即可

如果要使用spine数据打开

LOCAL_WHOLE_STATIC_LIBRARIES += spine_static

$(call import-module,editor-support/spine)

即可,物理box2d也是如此,其他库以此类推。

error: undefined reference to ‘cocos2d::ui::Button::setTitleFontSize(float)’
undefined reference to ‘cocos2d::ui::Button::create(std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, std::__1::basic_string<char, std::__1::char_traits, std::__1::allocator > const&, cocos2d::ui::Widget::TextureResType)’
error: undefined reference to ‘cocos2d::ui::Widget::addTouchEventListener(std::__1::function<void (cocos2d::Ref*, cocos2d::ui::Widget::TouchEventType)>)’
为什么啊我都有引入的
MK文件
(call import-module,freetype2/prebuilt/android) (call import-module,chipmunk)
(call import-module,platform/android) (call import-module,ui)
$(call import-module,extensions)

这个问题重新有啊? 怎能么解决的?

楼主你的undefined reference to 'cocos2d::network::HttpClient::getInstance()这个问题怎么解决的 我的还是存在

我那边是undefined reference gui的实现,然后加上
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_gui_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static
就ok了