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 我用的是这个
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)