1,下载
jdk-6u45-windows-x64.exe,注意必须安装JDK1.6版,1.7版会有编译错误
安装之
2,下载定制版eclipse:adt-bundle
解压到非中文目录(如 D:\android)
3,下载NDK
解压到非中文目录(如 D:\android)
加入环境变量 NDK_ROOT 值为以上路径。
注意JDK、NDK和Eclipse需要同为64位版或32位版,以上我是用的是64位版本。
4,下载 Cygwin
安装注意事项:
需要安装在非中文目录中(如 D:\cygwin),选择163的镜像,其他的都比较慢,在安装细节中需要选择Devel项选择为install。
安装过程长短视网速而定,我大约用了两个小时。
Cygwin一样模拟了Linux的权限管理体系,这也没有什么不好的,但是跟Microsoft Windows的默认权限管理却有些不对付。常会出现权限问题,一个文件可以手动改,但如果是多个文件就比较麻烦了,我这里采用彻底的解决方法是,在安装好Cygwin以后,禁止Cygwin采用POSIX体系的权限管理。使用文本编辑器打开Cygwin目录\etc\fstab,末尾添加如下行:
none / cygdrive binary,user,noacl,posix=0 0 0
4,下载cocos2D-x开发包
解压到非中文目录
5,创建Andriod工程。
在Cocos2D目录中找到create-android-project.bat用文本编辑器打开,
在第一行加入 cd /d %~dp0
修改如下常量:
_CYGBIN:CygWin的Bin目录。
_ANDROIDTOOLS:android SDK的tools目录(在
adt-bundle的)。
_NDKROOT:NDK的Root目录。
然后用管理员权限运行create-android-project.bat
输入工程路径(工程路径需要为正规的Java工程路径,否则无法编译)和工程名,另外需要指定使用的SDK版本。
此时在create-android-project.bat所在目录中会出现一个与工程名相同的目录,
此目录为 生成工程目录。
6,修正工程
打开adt-bundle中的Eclipse,导入工程(import 如下目录:生成工程目录\proj.android),
会发现工程有错误,使用如下方法修正:
(1)将cocos2d目录\cocos2dx\platform\android\java\src 中的东西拷贝到 生成工程目录\proj.android\src目录下。
(2)用文本编辑器打开 安卓工程目录\proj.android\AndroidManifest.xml找到如下行:
<application android:label="@string/app_name" android:icon="@drawable/icon">
改为
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
7
,编译C++部分
以管理员权限打开Cygwin,进入到刚才生成的 生成工程目录 进入proj.android目录,运行build_native.sh
(此处需要点Unix命令基础,自己在网上查查吧)
编译成功后会在 生成工程目录\proj.android\libs\armeabi 目录下生成 libgame.so 文件。
此处如果出现问题应该是文件访问权限或者是工程的工程路径输入错误。
如果是权限问题,可以右键点击工程所在的盘符,然后点 属性->安全 为当前用户添加权限。
8,生成apk
回到Eclipse,编译工程,后会在 生成工程目录\proj.android\bin\工程名.apk
链接到手机即可在手机上调试。
9,在VS和Eclipse共享代码
对于习惯使用VS的程序猿来说,可以在VS上开发,在Eclipse上只编译安卓的版本(以后会改为自动生成版本)。对于习惯在Eclipse上开发的程序猿可以跳过,共享代码方法如下。
(1)安装VS2010或者VS2012。
(2)进入cocos2dX的解压目录,然后运行install-templates-msvc.bat,安装工程模版。
(3)打开VS,新建一个cocos2DX工程,然后将proj.win32文件夹(注意:不是和解决方案文件同级的proj.win32,而是在工程目录中proj.win32目录)拷贝到刚才的 生成工程目录,打开其中的工程文件,
(4)保存解决方案文件到 cocos2dx目录,然后重启VS,打开此解决方案,应该可以直接编译运行Windows版。
(5)修改代码,在VS中调试成功,然后执行第7步重新编译so文件,在执行第8步即可生成新版本的安卓安装包。