如何在Android Studio中调试Cocos2d-x项目?

时间:2016-01-01 06:16:02

标签: android android-ndk cocos2d-x

环境:Cocos2d-x 3.9,Android Studio priview 2.0,ndk r10e(64位),win10(64位)。
  Cocos-console似乎使用NDK将我的所有cpp组件编译成一个libcocos2dcpp.so文件。我设法编译了我的应用程序。它在win32上运行良好,但在Android上崩溃了。

I/DEBUG: Build fingerprint: 'samsung/h3gzc/hlte:5.0/LRX21V/N9006ZCUGOH2:user/release-keys'
I/DEBUG: Revision: '8'
I/DEBUG: ABI: 'arm'
I/DEBUG: pid: 2561, tid: 2561, name: Zzzen.YourWorld  >>> com.github.Zzzen.YourWorld <<<
I/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
I/DEBUG:     r0 b4f512b0  r1 1fffffff  r2 2e7e0d8d  r3 b4f512b0
I/DEBUG:     r4 00000043  r5 b4f18228  r6 a20f99e4  r7 00000000
I/DEBUG:     r8 b4f07800  r9 b4efac64  sl bef10b58  fp bef10984
I/DEBUG:     ip a275abd0  sp bef10978  lr a20f9a10  pc 00000000  cpsr 600f0010
I/DEBUG:     #00 pc 00000000  <unknown>
I/DEBUG:     #01 pc 00352a0c  /data/app/com.github.Zzzen.YourWorld-1/lib/arm/libcocos2dcpp.so (JNI_OnLoad+40)
I/DEBUG:     #02 pc 001d5357  /system/lib/libart.so (art::JavaVMExt::LoadNativeLibrary(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, art::Handle<art::mirror::ClassLoader>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+1478)
I/DEBUG:     #03 pc 001fd061  /system/lib/libart.so (art::Runtime_nativeLoad(_JNIEnv*, _jclass*, _jstring*, _jobject*, _jstring*)+548)
I/DEBUG:     #04 pc 00019811  /system/framework/arm/boot.oat

所以我使用addr2line来查看00352a0c的内容。但是,它只显示了JNI_OnLoad。我应该在创建精灵之后添加断言,以防Sprite::create可能返回nullptr吗?

1 个答案:

答案 0 :(得分:0)

我经常使用Cocos2d-x的日志功能来查找应用程序崩溃的位置。

(例如log(&#34;精灵开始... x =%f,y =%f&#34;,locationInNode.x,locationInNode.y);)

您可以按&#cocos2d&#39;过滤日志消息。在Android工作室中查看有关您的cocos2d-x应用程序的所有日志。 enter image description here