Cocos2d-x2.1.4 的 android 环境配置及使用
---- 小黑 5188 , 2013-10-02 晨
=================================================================
* 本文各步骤小黑都亲自成功操作,如有遗漏错误,请告知修改,谢谢。
* 转载本文请注明出处,尊重小黑的劳动成果,谢谢。
* 一起学习,一起进步 。( QQ:1158685676 )
【 http://blog.csdn.net/xiaohei5188/article/details/12233895 】
=================================================================
目录
一、 环境说明
二、 安装包
三、 安装步骤介绍
1、 安装jdk到D:\Program Files\Java
2、 解压cocos2d-x到D:\cocos2d-x\cocos2d-x-2.1.4
3、 解压ndk到D:\DevTools\android-ndk-r8e
4、 解压adt到D:\DevTools\adt-bundle-windows-x86_64-20130717
5、 安装cygwin64,执行setup-x86_64.exe,安装到D:\DevTools\cygwin64。
四、 使用步骤介绍
1、 修改D:\cocos2d-x\cocos2d-x-2.1.4\create-android-project.bat
2、 修改D:\cocos2d-x\cocos2d-x-2.1.4\create-android-project.sh
3、 执行create-android-project.bat创建工程
4、 编译C++文件,输出.so文件
5、 编译Android工程
五、 问题总结
一、环境说明
1 、本人电脑是 64 位的 WIN7 ,所以本文以此配置说事。
2 、电脑一定要使用 administrator帐号
如何切换帐号: ****方法一:控制面板 --> 管理工具 --> 计算机管理 --> 本地用户和组 --> 用户 -->鼠标右键单击 administrator 选属性 -- 〉将帐户已禁用的钩去掉 -- 〉确定 --- 〉重启-- 〉 ok ****方法二: 本地用户和组 , 高级家庭版没有这一项 , 怎么办 ? 解决: 可以在“开始 -> 所有程序 -> 附件”中,右击“命令提示符”,选择“以管理员身份运行”。然后,在命令提示符窗口输入 "net user administrator /active:yes"( 不要输入引号 ) ----> 开始 ----> 切换用户就能看到 administrator |
3、参考
http://blog.csdn.net/xiaohei5188/article/details/12198151
http://blog.csdn.net/ilylyl521/article/details/9222883
二、安装包
“jdk” + “ Cocos2d-x2.1.4 ” + “ android-ndk-r8e”+ “ adt-bundle-windows-x86_64-20130717”+ “ cygwin64”
1 、 jdk-7u40-windows-x64.exe(下载完后直接安装,一直下一步)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
2、cocos2d-x-2.1.4.zip
忘记网址了,自已度娘去
3、android-ndk-r8e-windows-x86_64.zip( 下载完直接解压,解压目录不要带中文和空格 )
http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86_64.zip
4、adt-bundle-windows-x86_64-20130717.zip( 下载完直接解压,解压目录不要带中文和空格,里面包含了带 adt 插件的 eclipse 和最新版的 android sdk)
https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20130717.zip
5 、 setup-x86_64.exe
http://cygwin.com/setup-x86_64.exe
三、安装步骤介绍
1、安装 jdk 到 D:\Program Files\Java
2、解压 cocos2d-x 到 D:\cocos2d-x\cocos2d-x-2.1.4
3、解压 ndk 到 D:\DevTools\android-ndk-r8e
4、解压 adt 到 D:\DevTools\adt-bundle-windows-x86_64-20130717
5、安装 cygwin64 ,执行 setup-x86_64.exe ,安装到 D:\DevTools\cygwin64 。
参考以下图:
(图 2 路径 D:\DevTools\cygwin64 , 图 3 路径 D:\DevTools\cygwin64\InstallDownloads ) |
(图1)
(图2 )
(图3 )这个目录你随意填吧,这是下载包目录,以后重新安装可以在前面第一步选择 install from local directory
(图4 )
(图5 )选择 163 的应该快一些
(图6 )
(图7 )
(图8)然后下一步下一步,狂等好久直到安装完毕。
6、修改全局变量
(1)设置系统变量NDK_ROOT
D:\DevTools\android-ndk-r8e
(2)设置系统变量Path
编辑 Path ,在后面追加 4 个环境变量,以 ; 号隔开 ( 别忘了给前面的加上 ;) , 4个分别是 android 的 sdk 的 platform-tools , android 的 sdk 的 tools , cygwin 的bin ,上面添加的 NDK_ROOT ,即:
D:\DevTools\adt-bundle-windows-x86_64-20130717\sdk\platform-tools;D:\DevTools\adt-bundle-windows-x86_64-20130717\sdk\tools;D:\DevTools\cygwin64\bin;%NDK_ROOT% |
四、使用步骤介绍
1、修改D:\cocos2d-x\cocos2d-x-2.1.4\create-android-project.bat
2、修改 D:\cocos2d-x\cocos2d-x-2.1.4\create-android-project.sh
3、执行 create-android-project.bat 创建工程
以下代表成功
在D:\cocos2d-x\cocos2d-x-2.1.4目录下出现目录“test03”
打开后会看到
说明:
Classes 里存放 win32 你要编译的项目的 cpp 文件。
pro.android 里存放的是 android 的项目文件
Resources 里存放的资源文件
4、编译C++文件,输出 .so 文件
首先你要把 win32 的项目中你要编译的所有的 .cpp 和 .h 文件全部移到 Test 03\Classes 目录中。
然后把资源图片音乐什么的都移动到 Test 03 \Resources 目录下。
然后还要修改一个地方:
如果有增加.cpp 源文件,则 进入到 Test 03\proj.android\jni 下,用记事本打开Android.mk 。
修改例如下:
保存。
默认没有增加文件时:
|
好了,接下来打开 cygwin 编译文件。但在此之前先配置两个环境变量吧!
右键计算机 - 属性 - 高级管理 - 环境变量 - 添加系统变量
名: NDK_ROOT 值: D:\DevTools\android-ndk-r8e (你的 ndk 目录) 名: COCOS2DX_ROOT 值: D:\cocos2d-x\cocos2d-x-2.1.4\cocos2dx (引擎目录) |
来到你的 cygwin 目录下,打开 Cygwin.bat
接着输入 cd /cygdrive/d/cocos2d-x/cocos2d-x-2.1.4/test03/proj.android/
回车。也就是进入你的 android 项目的 pro.android 目录下。
接着输入 ./build_native.sh 这就启动了 build_native.sh 这时就可以编译了。过程也比较慢。
编译成功
----------------------------------------------------------
如果 : 虽然之前已经配置了 ndk 的目录,但是我运行 输入 ./build_native.sh 后报错提示我 未找到 ndk ! 我在网上找到了解决办法:
用记事本打开 build_native.sh 。修改如下
然后继续运行 ./build_native.sh 吧。
5、编译 Android 工程
打开D:\DevTools\adt-bundle-windows-x86_64-20130717\eclipse\eclipse.exe
Improt 工程 D:\cocos2d-x\cocos2d-x-2.1.4\test03\proj.android
导入项目后基本不会出错。但我的项目出了两个错。
Problem 里出现错误: Cocos2dxActivity cannot be resolved to a type
笔者解决方法:将cocos2d-x引擎的根目录的cocos2dx/platform/android/java/src文件夹下文件夹全部复制到项目的src包下即可
原作者解决方法:重新设置 cocos2dx 的 java 代码目录。右键工程, Build Path->Link Source->Browse-> 你的 cocos2dx 的目录 D:\cocos2d-x\cocos2d-x-2.1.4\cocos2dx\platform\android\java\src, 然后把 Folder name 改成其他的, 如cocos2dx-src(别叫 src 就行 )。
(2)第二个是AndroidMainifest.xml里一处。
以前是icon。改成ic_launcher。因为图标文件就叫这个。
最后,让程序跑到我们的 android 手机上 ( 你电脑上需要有安装过手机的驱动程序,或者 91 助手, 豌豆荚,手机 360 ,或者 QQ 手机助手 ) 。右键工程 Run as
把apk直接运行在手机上吧。
总算结束了。只想说一句话,我去年买了个表。
五、问题总结
1、非 Administrator 帐号执行 create-android-project.bat的问题
解决办法:
见本文开始的环境说明:如何切换 Administrator 帐号,
或参考http://wenwen.soso.com/z/q174817238.htm
2 、 Console 里出现错误 error: format not a string literal and no format arguments,这说明你用的是 ndk 版本是 r9
解决方法 1 :改用 ndk-r8e
解决方法 2 :修改报错的那个源代码所在目录的 Android.mk 文件搜索LOCAL_CFLAGS ,如果已经有了就再后面加上 -w ,如果没有那就直接加一行 LOCAL_CFLAGS := -w