微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 如何在android设备上调试cocos2d-x 3本机代码

我找不到任何菜谱/教程如何构建在调试中为 Android构建一个cocos2d-x 3.1项目,以及如何直接在设备上进行调试.请指出步骤请帮忙.

我做什么和我有什么问题:

> cd proj.android
> cocos compile -p android -m debug –ndk-mode NDK_DEBUG = 1(使用debug信息构建)
> cocos运行-p android -m调试在设备上部署
>在设备上运行应用程序
> cd jni
> ndk-gdb

我得到这个错误

Nareks-MacBook-Pro:jni Narek$ndk-gdb
jni/Android.mk:67: *** Android NDK: Aborting.    .  Stop.
ERROR: The device does not support the application's targetted cpu ABIs!
       Device supports:  armeabi-v7a armeabi
       Package supports: Android NDK:

进入Application.mk我已经添加

APP_ABI := armeabi armeabi-v7a
APP_PLATFORM := android-10

但它没有帮助.我做错了什么

编辑:添加ndk-build的结果DUMP_APP_ABI命令在项目中调用jni目录:

Nareks-MacBook-Pro:jni Narek$ndk-build DUMP_APP_ABI 
Android NDK: /Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk: Cannot find module with tag '.' in import path    
Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?    
Android NDK: The following directories were searched:    
Android NDK:         
/Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk:67: *** Android NDK: Aborting.    .  Stop.

解决方法

以下是在Android设备上调试cocos2d-x 3.x的逐步教程.如果您以更好的方式进行操作,请更正或优化我的步骤.

> cd proj.android
> cocos compile -p android -m debug –ndk-mode NDK_DEBUG = 1(使用debug信息构建)
> cocos运行-p android -m调试在设备上部署(有时它重建,我不知道为什么).此命令卸载以前的安装,安装新的安装程序,并在设备上运行该应用程序.
>确保在proj.android/libs/armeabi目录中有以下文件gdb.setup,gdbserver,libcocos2dcpp.so
>还要确保在/proj.android/jnI/Obj/local/armeabi目录中有app_process,gdb.setup,libc.so,linker
> ndk-gdb(重要的是这个应该在project目录下调用,不在jni目录下)

如果它工作,那么恭喜!但在这一步您可能会看到这样的错误信息:

Nareks-MacBook-Pro:proj.android Narek$ndk-gdb
jni/Android.mk:67: *** Android NDK: Aborting.    .  Stop.
ERROR: The device does not support the application's targetted cpu ABIs!
       Device supports:  armeabi-v7a armeabi
       Package supports: Android NDK:

别担心:)让我们看看有什么问题:

>这里是在项目的jni目录中调用的ndk-build DUMP_APP_ABI命令的结果:

Nareks-MacBook-Pro:jni Narek $ndk-build DUMP_APP_ABI
Android NDK:/Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk:找不到带标签的模块.在导入路径
Android NDK:您确定您的NDK_MODULE_PATH变量是否已正确定义?
Android NDK:搜索以下目录:
Android NDK:
/Users/Narek/NoorGames/Games/test2/proj.android/jni/Android.mk:67:*** Android NDK:中止. .停止.

可以看到NDK_MODULE_PATH丢失了.为了获得该值,请执行以下操作.转到编译代码的步骤.在执行命令cocos的第一个linse中编译-p android -m debug –ndk-mode NDK_DEBUG = 1,你可以看到这样的东西:

Runing command: compile
Building mode: debug
building native
NDK build mode: NDK_DEBUG=1
The Selected NDK toolchain version was 4.8 !
running: '/Users/Narek/NoorGames/android-ndk-r9d/ndk-build -C /Users/Narek/NoorGames/Games/test2/proj.android -j1 NDK_MODULE_PATH=/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d:/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d/cocos:/Users/Narek/NoorGames/Games/test2/proj.android/../cocos2d/external'

>从上面的日志复制你看到NDK_MODULE_PATH的必要值.执行以下命令export NDK_MODULE_PATH = / Users / Narek / NoorGames / Games / test2 / proj.android /../ cocos2d:/Users/Narek/NoorGames/Games/test2/proj.android /../ cocos2d / cocos:/用户/ Narek / NoorGames /游戏/ test2 / proj.android /../ cocos2d / external(请注意复制您的路径不是我的)

而已.现在在设备上运行游戏,cd proj.android,调用ndk-gdb,你应该能够使用gdb进行调试.

我亲自找了这种教程已经20多天了.我希望你喜欢你的调试. :)感谢您@VikasPatidar的帮助与ndk-build DUMP_APP_ABI步骤!

EDIT1:作为评论的Vikas,您可以在Android.mk文件添加NDK_MODULE_PATH,如下所示:

NDK_MODULE_PATH := $(LOCAL_PATH)/../../../../cocos
NDK_MODULE_PATH += $(LOCAL_PATH)/../../../../external

EDIT2:如果您的应用程序在这里崩溃是一个非常强大和容易的方法来通过防止直接调试来调查问题:

adb logcat | $NDK_ROOT/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi

它打印崩溃转储.

原文地址:https://www.jb51.cc/c/112657.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐