目的
打cocos的安卓包
环境
1、cocos
cocos3.4
2、python(需要安装)
pthon2.7
3、jdk (需要安装)
jdk-7u79-windows-x64
4、ndk(解压即可)
android-ndk-r9b-windows-x86_64
5、apache ant(解压即可)
apache-ant-1.9.2
6、adt boundle(ADT Bundle包含了Eclipse、ADT插件和SDK Tools,是已经集成好的IDE,只需安装好Jdk即可开始开发,推荐初学者下载ADT Bundle,不用再折腾开发环境,只需解压,我们会用到里面的adnroid sdk)
adt boundle 23.0
提取码:02jw
步骤
配置环境变量
1、运行cocos引擎根目录下的setup.py文件。(如果运行不了的话查看是否安装了python,如果安装了也运行不了那可能就是电脑的环境变量里面没有设置python的路径,需要把python的路径添加到path变量里。)
2、运行后应该会出现这个
要求你配置NDK_ROOT的路径,我这边是·D:\android-ndk-r9b·
按下回车键,会要求你配置android sdk目录
我这边是D:\adt-bundle-windows-x86_64-20140321\sdk
接下来要配置ant目录,
我这边是D:\apache-ant-1.9.14\bin。最后出现这样的画面就代表结束了。
将项目导入eclipse
选择File->Import->Android->Existing Android Code Into Wordspace,会出现这么个对话框,
点击Browse,选择你的项目的proj.android文件夹,点Finish。
这个时候导入会比较慢,应该CDT会把cocos库的代码全都编译成一个libcocos2dcpp.so文件,这个貌似是个动态链接库。
正常情况下回看到libs下多了个libcocos2dcpp.so文件,但ecplise会有一个报错,如图。
将libcocos2d带入eclipse
会报错是因为项目工程引用了libcocos2d工程,我们需要把它导入进来。
如图:
我的路径是D:\cocos3.9-workspace\MySecondA\cocos2d\cocos\platform\android\java。
导入后错误就消失了。
修改Android.mk
我们需要修改jni\Android.mk文件,里面有这么一段
你的代码文件应该都是放在Classes文件夹里的,那么你需要将.cpp文件全都加进来。比较如我有个MainScene.cpp文件,那么应该变成这样:
如果不想一句一句加的话可以参考这:
JNI中编写Android.mk中的LOCAL_SRC_FILES的技巧
(这个android.mk文件是ndk使用的,用来编译.so库,来指示编译哪些代码文件。个人理解。)
编译运行
编译运行,没有错误的话proj.android\bin下应该会有个apk包。
当然了,如果是第一次打开eclipse就得配置一个安卓模拟器,可以用eclipse自带的,也可以下载一个安卓模拟器,或者用手机连上电脑。
以上是以HelloWorld原始工程为目标的操作步骤,实际项目的话可能会有各种错误需要处理。每个版本之间可能会有不同。我对打包这块不是很懂。此文只是给我自己做个记录,也给大家个参考。
ps:我最后编译出了问题,一个xml文件出错了,MySecondA\cocos2d\plugin\plugins\qh360\proj.android\ForAssets\upomp_bypay_config.xml
报错Content is not allowed in prolog.upomp_bypay_config.xml。
打开一开,是一对字符串。好像是base64编码。这个东西应该是一个奇虎360的支付接口的一部分。应该xml格式所以报错了。可以关闭eclipse的xml格式校验。