您的位置:首页 > 移动开发 > Cocos引擎

quick-cocos2d-x的c++层真机调试

2016-02-01 10:23 337 查看
最近在项目中碰到在特定手机上会卡住问题,初步怀疑是c++层的模块产生的。所以要在真机上调c++,如果是个cocos2d-x c++的项目还比较好调,但quick就有点麻烦了。试了几种方式都没成功。最后终于找到一个相对来说简单的方法。

1.首先被调试的手机必须是root过的。

2.将quick工程导入到eclipse。路径:%项目目录%\frameworks\runtime-src\proj.android

3.将cocos2dx的java工程做为library导入eclipse。路径:%项目目录%\frameworks\cocos2d-x\cocos\platform\android\java

4.用player或者build_apk.bat编译带debug信息apk

5.在eclipse中选中自己quick项目,将debug版本的应用安装到目标设备上。这步的目的其实就是将程序和debug需要的文件gdb.setup,gdbserver安装到设备上。本来可以用 ant debug install,但那样很麻烦。这步可能会报 "miss androidmanifest.xml",错误。不过只要稍微修改下此文件,再改回去,然后保存,就不会再报这个错了。

6.将ndk路径加入到环境变理的path目录中

7.打开命令行窗口,并进入到 %项目目录%\frameworks\runtime-src\proj.android

8.打开build_native_release.bat 将 最后的 NDK_MODULE_PATH 设置到 环境变量中。或者建个批处理 ndk-gdb-env.bat 保存在proj.android目录,内容是

@echo off

set DIR=%~dp0

set APP_ROOT=%DIR%..\..\..\

set APP_ANDROID_ROOT=%DIR%

set COCOS2DX_ROOT=%DIR%\..\..\cocos2d-x

SET NDK_MODULE_PATH=%APP_ANDROID_ROOT%;%COCOS2DX_ROOT%;%COCOS2DX_ROOT%/cocos;%COCOS2DX_ROOT%/external;%COCOS2DX_ROOT%/cocos/scripting;%APP_ANDROID_ROOT%/../Classes

@echo %NDK_MODULE_PATH%

运行这个批处理就好了。

9. 运行 ndk-gdb.py。接下来就可以调试了。

---------------------------------------------

注意:

1.gdb连接时,可能会超时,需要多连几次

2.不知道为什么,gdb的说明里说:ctrl-c 可以中断程序,但在我的机器上是不行的。所以我另起一个命令行。用adb shell进入到设备的控制台。并用 "kill -s SIGINT 进程号" 向gdb发送中断信号

3.在进行第8步时,可能会出现./obj/local/armeabi/app_process: No such file or directory。只需要 adb pull /system/bin/app_process ./obj/local/armeabi/app_process 就可以了。

---------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: