转载自:http://blog.csdn.net/qqmcy/article/details/23909515
cocos2d升级到3.0RC2了,发现Android编译似乎以前容易很多。这里记录下实现过程防止以后遗忘。
一、前期准备
1、ADT:百度下就OK
2、NDK:百度下就OK
3、ANT:http://124.254.47.39/download/55152992/78533365/4/zip/57/132/1388364864569_644/apache-ant-1.9.3-bin.zip 我用的是这个
3.1用了很多python脚本来做环境设置,工程创建,自动化工作。这里只写MAC下的环境配置。
下载3.1的代码,解压到你的工作目录即可。执行setup.py脚本,这个脚本是用来设置相关环境变量的。我的MAC环境,这个脚本会将我home下的.bash_profile文件备份,然后复制一份,加入几个环境变量
1.COCOS_CONSOLE_ROOT,这个是一个控制台工具,用来部署游戏的,看文档是说可以直接部署到机器上,不过目前貌似还没有完成。
2.NDK_ROOT,这个用来编译android的native代码,谷歌的东西。
3.ANDROID_SDK_ROOT,这个android应用开发sdk,用来创建安卓应用。
4.ANT_ROOT,ant编译工具,构建安卓工程,编译,打包输出apk
4、cocos2d3.0RC2的压缩包,去官网下没什么好说的。
二、创建工程
找到2dx的解压后的文件夹
打开终端 输入 当然下面的路径要换成你自己
cd /Users/tokou/WORK/5-Cocos2dx/cocos2d-x-3.0rc2
./setup.py
之后就是配置ADT、NDK、ANT了。配置好之后在终端输入:这是进入创建工程脚本的文件夹
- cd /Users/tokou/WORK/5-Cocos2dx/cocos2d-x-3.0rc2/tools/cocos2d-console/bin
之后输入: home 是你想把工程放在哪个路径下
- cocos new Test123 -p com.Test.Test123 -l cpp -d /Users/tokou/WORK/5-Cocos2dx/Project
成功会出现如下:
- Runing command: new
- > Copy template into /Users/tokou/WORK/5-Cocos2dx/Project/Test123
- > Copying cocos2d-x files...
- > Rename project name from 'HelloCpp' to 'Test123'
- > Replace the project name from 'HelloCpp' to 'Test123'
- > Replace the project package name from 'org.cocos2dx.hellocpp' to 'com.Test.Test123'
接下来我们进入新建工程的目录下编译Android工程
在终端输入: 下面的路径要换成你们自己的
- cd /Users/tokou/WORK/5-Cocos2dx/Project/Test123
之后输入:
- cocos run -p android -j 4
出现:
- running: '/Users/tokou/WORK/Android/adt-bundle-mac-x86_64-20130917/sdk/platform-tools/adb install "/Users/tokou/WORK/5-Cocos2dx/Project/Test123/bin/debug/android/Test123-debug-unaligned.apk"'
- 6450 KB/s (2367192 bytes in 0.358s)
- pkg: /data/local/tmp/Test123-debug-unaligned.apk
- Success
- Runing command: run
- starting application
- running: '/Users/tokou/WORK/Android/adt-bundle-mac-x86_64-20130917/sdk/platform-tools/adb shell am start -n "com.Test.Test123/org.cocos2dx.cpp.AppActivity"'
- Starting: Intent { cmp=com.Test.Test123/org.cocos2dx.cpp.AppActivity }
这样Android的工程就编译完成了。
我们可以用ADT打开它,也可以直接安装APK
APK在:
/Users/tokou/WORK/5-Cocos2dx/Project/Test123/bin/debug/android/Test123-debug-unaligned.apk
用ADT打开:
1、
2、
3、
4、我们会发现如下问题:
- org.cocos2dx.lib报错
- import org.cocos2dx.lib.Cocos2dxActivity;
- public class AppActivity extends Cocos2dxActivity {
- }
我们来解决这个问题:
1、
2、
这样就OK了。
模拟器运行图:
补充如果项目中用到了。
#include "extensions/cocos-ext.h"
类似这种头文件的控件需要在位于proj.android/jni下 Android.mk这个文件中添加如下
- LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static
- LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
- LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
- LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static
- include $(BUILD_SHARED_LIBRARY)
- $(call import-module,2d)
- $(call import-module,audio/android)
- $(call import-module,Box2D)
- $(call import-module,extensions)
补充2014.5.5
如果在工程中使用了:
#include "ui/CocosGUI.h" 头文件 需要在上面的文件中添加如下代码
- LOCAL_WHOLE_STATIC_LIBRARIES += ui_CocosGUI_static
- LOCAL_WHOLE_STATIC_LIBRARIES += cocostudio_static
- $(call import-module,ui)
- $(call import-module,editor-support/cocostudio)
补充2014.5.5晚10.47
使用头文件
- #include "network/HttpClient.h"
需要在Android.mk文件中
- LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static
- $(call import-module,network