商务服务
Eclipse + ndk+ cocos2dx 调试Cocos2dx 程序
2024-12-26 23:16

本文是我自己尝试通过eclipse来在windows平台下搭建cocos2dx的过程,期间遇到了一些问题,都是通过网上借鉴别人的博文来解决的,下面也列出来这些参考文献。写下来的目的主要是自己以后要用的时候也好参考,也方便别人要搭建的时候少走弯路。

一 、相关的工具

1.NDK R7版本以上(不需要用到Cygwin,因为R7版本以上的NDK集成了我们需要用到Cygwin的功能:编绎C++(打包cocos2d-x文件,编绎SO))

2.google 官网下载的Eclipse ADT(已搭建android环境:包括NDK的路径,等等)

3.Cococs2d-x 2.0 - 2.0.4 以上版本

4、安装NDK Plugin

弹出的窗口里第一个框”Work with:“后面输入https://dl-ssl.google.com/android/eclipse/

  1. 稍等一会,下面会出来”Developer Tools”和”NDK Plugins”,全部选中,Next,同意协议,等安装完成后,重启eclipse
  2. eclipse重启后,到Eclipse->Preferences->Android->NDK,在这里设置你的NDK目录,比如我的,我设置到/android/android-ndk-r8e
  3. 打开eclipse,在菜单里选择Help->Install New Software…

二、编译

1、使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之外,还会生成gdbobserver,gdb.setup调式文件
我这边采用的脚本生成的编译命令,配置方法如下


2、 拷贝相关的源文件到

To fix this error, copy [cocos2d-x]/cocos2dx to [ndk-dir]/sources/.
And move directories under cocos2dx/platform/third_party/android/prebuilt/ to [ndk-dir]/sources/.
After that, additional directories include cocos2dx, libcurl, libjpeg, libpng, libtiff and libwebp will under [ndk-dir]/sources/.

上面是引用的cocos2dx官方论坛的原话,意思是将NDK编译需要用到的cocos2dx相关的源文件拷贝到NDK的sources目录下面,不同的cocos2dx版本可能拷贝的文件不一样。

3、因为是调试C++,需要将Eclipse调整到C++视图。

a、增加一些必要的头文件Include:

右键项目名称,选择Properties,展开c++ General选择Path and Symbols,点击Includes标签项,选中Assembly,点击add按钮,在弹出对话框中填入如下路径:

ndk放置目录android-ndk-r8cplatformsandroid-8arch-armﶂnclude

cocos2dx放置目录cocos2d-2.0-x-2.0.3CocosDenshioninclude

cocos2dx放置目录cocos2d-2.0-x-2.0.3cocos2dxinclude

 b、切换到Source Location标签,点击link Folder按钮,如下图,选中后再点击Browse按钮,在弹出的对话框中选择以下路径,

cocos2dx放置目录cocos2d-2.0-x-2.0.3samplesSimpleGameClasses(这里只是举例,实际上这个目录是你用create android project这个脚本生成的android项目里面的Classes文件夹的路径)

cocos2dx放置目录cocos2d-2.0-x-2.0.3cocos2dx

当然这里还有可能的是你需要的一些其他的目录,你需要的源文件都可以把它link进来,我这边把刚刚拷贝到NDK sources目录下面的文件都link进来了。

          c、c++ General项,选中Code Analysis,设置如下图所示,要求一模一样。设置这个的目的是因为eclipse cdt插件对代码解析不够好,很多正确的代码会解析成错误的提示出来,导致无法编译。


三、 调试过程中遇到的问题

   解决方法:直接上图就明白了,修改工程的indexer属性就OK了


2、Unknown Application ABI:  错误

2013-08-15 11:16:14 - MyProject] Unknown Application ABI: 
[2013-08-15 11:16:14 - MyProject] Android
[2013-08-15 11:16:14 - MyProject] Unknown Application 

Android NDK: jni/https://www.cnblogs.com/cocos2dx/cocos2dx/Android.mk: Cannot find module with tag 'libjpeg' in import path 
Android NDK: jni/Android.mk: Cannot find module with tag 'cocos2dx' in import path 
解决方法:

在android.mk的importmodel前,加入path的设置:

$(call import-add-path,$(LOCAL_PATH)/https://www.cnblogs.com/cocos2d-x-2.1.4)
$(call import-add-path,$(LOCAL_PATH)/https://www.cnblogs.com/cocos2d-x-2.1.4/cocos)
$(call import-add-path,$(LOCAL_PATH)/https://www.cnblogs.com/cocos2d-x-2.1.4/external)


$(call import-module,2d)

。。。。注意上面加入的三行,是根据cocos2dx的版本来的,不是所有的版本都是同样的写法,根据不同的版本进行配置。


3、选择debug as andriod native application, 无法打开设备, 弹出 java nullpointer exception.

目前我也没有办法解决,我都是先打开模拟器,然后再点击 debug as andriod native application,可以进入调试界面。

4、进入调试界面无法下断点。

主要是因为程序配置多个默认的ABI,多个ABI有可能导致GDB无法找到正确的调试文件。

在我的andriod工程的local 目录下面,obj目录下面有两个文件夹,可能是不同硬件平台对应的调试文件吧(我猜的)。因为我们要调试,所有要指定一个唯一的平台。

Eclipse + ndk+ cocos2dx 调试Cocos2dx 程序

方法是修改Application.mk,增加下面的几行:

APP_CFLAG := -g -ggdb -O0
APP_ABI := armeabi-v7a
 指定唯一的ABI

APP_OPTIM := debug   


参考文献:

1、andriod.mk语法介绍

http://www.cnblogs.com/likwo/archive/2012/05/09/2492614.html  

2、调试:

http://www.aiseminar.cn/bbs/home.php?mod=space&uid=3&do=blog&id=2735 

http://www.cocos2d-x.org/wiki/How_to_debug_cocos2d-x_games

http://www.scottcgi.com/2013/01/12/ndk%E7%BC%96%E8%AF%91%E9%94%99%E8%AF%AFunknown-application-abi%EF%BC%8Cunable-to-detect-application-abis/

http://blog.csdn.net/yc1404/article/details/8572940

http://blog.csdn.net/wutianyin222/article/details/8222838

http://wiseideal.iteye.com/blog/1963921

http://blog.csdn.net/we000636/article/details/8585436

http://blog.csdn.net/wangbofei/article/details/7951362

http://blog.csdn.net/yixiaoqingyuz/article/details/8269726


    以上就是本篇文章【Eclipse + ndk+ cocos2dx 调试Cocos2dx 程序】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/10557.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
过年无忧 | 一键get这些春节话术!
一键Get这些春节话术~过年无忧新年快乐春节将至,年味渐浓在这温馨又热闹的节日氛围里我们既能品尝各式各样的美味佳肴沉浸于味
2025在新加坡生活的我们将迎来“至暗时刻”:房租飙涨、每个月入不敷出…
聚焦新加坡真是开年暴击!2025年刚开始,还没过新年呢,万事通就出了一身冷汗:今年又是一个物价涨涨涨的年份。在网上一搜“新加
太抽象!太抽象!2024年游戏行业简直太抽象!
年末,DataEye研究院今天整点活,轻松一波。——用数据、新闻盘点2024年国内游戏业有多抽象。回首2024年有产品研发8年烧了数亿,
TikTok会如何收场
TikTok的命运再次悬而不决。在美国下架12小时又恢复运营之后,1月20日,美国总统特朗普签署行政命令,要求TikTok「不卖就禁」法
今天上午10:00,成绩发布!
早安,东台!‍今天是2025年1月22日‍星期三(农历腊月廿三)大美东台,活力满满进取创新、奋斗拼搏最近有哪些新动态?和小东一
农村土地托管服务的理论基础
中国产品流通经纪人协会供销合作行业标准《农产品食品供应商信用评价规范》参编单位征集函中国农产品流通经纪人协会供销合作行业
头上三尺有神明,每个人头顶都有一颗星,当星光消失人也就消失!
每当夜晚降临后,我们抬头看天空,会看到满天的星星,自古以来,人们从没有停止过对星象的观测和研究。古人观测星象,一则是为了
运营师抖音代运营
运营师抖音代运营:掌握流行短视频潮流的神奇职业短视频平台已经成为人们娱乐、学习和社交的重要方式。在众多的短视频平台中,抖
微短剧,2024年“最大赢家”? | 年终盘点
2024,短剧行业大变样。作者 | 张语格编辑 | 趣解商业文娱组“互联网大厂争相入局。”“98%的短剧制作方都在亏钱。”“用户被免
同类第一!20%弹性的人工智能 ETF 科创(588760)今日上市,一键布局科创板优质AI龙头
  最新公告内容显示,广发上证科创板交易型开放式指数投资基金(基金代码:588760;扩位简称: ETF 科创)已于 2025 年 1 月 1