我们需要安装NDK,JDK,adt-bundle-windows,以及cygwin这些软件并且搭建好环境,才能把cocos2d-x用VS2010写好的代码,移植到android交叉编译成安卓apk。
软件的安装路径不要带中文和空格,这点很重要,让你省去很多麻烦!
本文的环境是32位,windows系统,cocos2d x 2.0.4
第一步 下载 ndk r7版本 下载地址http://dl.google.com/android/ndk/android-ndk-r7-windows.zip
ndk官网地址:http://developer.android.com/tools/sdk/ndk/index.html
建议下载ndk的r7或者r8版本,cocos2d x 2.0.4、2.1.4等版本在NDK r9下的编译稍微会报错比较多。
关于NDK r9版本报错的解决方法,可以参考这里:http://blog.csdn.net/u013174689/article/details/18739125
下载完毕后直接解压,解压目录不要带中文和空格,这点很重要,让你省去很多麻烦。。Android NDK的配置就是不用配置。网上说的一些设置啊,其实都已经不需要,直接把下载回来的包解压即可。记住自己的存放目录,例如:我的路径是E:\android-ndk-r7
因为后面我们需要在eclipse里记得设置好ndk目录变量。
设置环境变量
用鼠标右击“我的电脑”,选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”。
新建系统变量名:NDK_ROOT
例如我的路径是:E:\android-ndk-r7
再增加系统变量path的路径;%NDK_ROOT%(前面的分号;是用于跟其他变量值分开)
第二步
下载并安装java jdk 1.6
地址该版本适合32位的系统:http://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe
如果需要其他版本,也可以去问百度下载JDK,也可以到官方下载JDK。 官方下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
例如你仍是装java jdk 1.6 到windows 64位的电脑,打开刚刚的网页后,右侧点击Previous Releases,新出的页面点击Java S E 6,新出现的页面找到Windows x64对应栏目的下载JDK download就是了。
其中windows 64,x64是指的64位系统
Windows x86中的x86是指的32位系统。
JDK的环境变量配置
配置环境变量包括java_home,path和classpath三个部分。
用鼠标右击“我的电脑”,选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”。
例如我的该软件路径:C:\Program Files\Java\jdk1.6.0_10
下面开始“classpath”的配置。选中“系统变量”查看是否有classpath项目,如果没有就点击“新建”,如果已经存在就选中classpath选项,点击“编辑”按钮,然后在“变量名”中填写“classpath”,在“变量值”中填写“C:\Program Files\Java\jdk1.6.0_10\jre\lib”(根据安装路径填写)。
现在可以进行“path”的配置了。选中“系统变量”查看是否有path项目,如果没有就点击“新建”,如果已经存在就选中path选项,点击“编辑”按钮,然后在里面加上路径。例如我的已经存在path,需要添加新的“变量值”,我输入框填写“;C:\Program Files\Java\jdk1.6.0_10”(根据安装路径填写,前面的分号;是用于跟其他变量值分开)。
JDK的环境变量已经配置完成,
下面我们检查一下是否正常。
首先点击“开始”,然后点击“运行”。输入“cmd”,按"Enter"键。
这个时候就进入了“命令提示符”窗口。这个时候输入“java -version”,特别注意 java和-version之间有一个空格,按"Enter"键。
这样JDK版本信息就全部显示出来了,也表示JDK已经安装和配置完成,可以开始进行JAVA开发了。
第三步 下载并安装cygwin
Cygwin的下载地址:http://www.cygwin.com/
The most recent version of the Cygwin DLL is 1.7.27. Install it by running setup-x86.exe (32-bit installation)
安装教程传送门:http://www.cnblogs.com/lhming/archive/2012/06/27/2566460.html 该帖子关于Cygwin讲述的比较详尽到位。
到最后安装完毕后比较大,建议不要装在C盘。cygwin装在磁盘根目录下吧例如我的是D:\cygwin,会减少一些麻烦,务必不要中文尽量也不要空格。
如果路径包含了中文的话会比较麻烦,识别不了,可能需要找其他解决方法搞定中文的识别问题,或者需要卸载重装。
下载的选网站的时候,选163的网速有300k比较快,2个小时左右可以下完,如果不幸选到慢的网站可能会1 2天也下不完,务必要取消重新选找快的网站。
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
(我之前看的是另一个帖子,一个抽筋把列表中Devel和shell都安装了,呃呃,搞得占了4.5G空间。)
如果用户的运气足够好, 也许能够一次性的下载成功. 若真能这样, 恭喜恭喜!但如果你
和我一样不幸, 下到一半网络断了,怎么办?Cygwin的安装向导程序支持断点续传功能, 你可以按照上面的步骤再次运行setup.exe, 把上面的
骤再执行一遍就行了, cygwin会记住上次下载的东东的(适用于cygwin1.7以上)
用鼠标右击“我的电脑”,选择“属性”->“高级”->“环境变量”->“系统变量”,把D:\cygwin\bin增加到环境变量path中去。
例如我的安装路径是D:\cygwin\bin,则我需要填写的是“;D:\cygwin\bin”,根据你自己安装路径填写,前面的分号;是用于跟其他变量值分开。
打开安装目录找到Cygwin.bat文件,右键选择编辑,把该文件修改如下所示。我的安装路径是D:\cygwin\bin,根据你自己安装路径填写。
@echo off
set HOMEPATH = D:\cygwin\work\
path % PATH % ; D:\cygwin\bin; D:\cygwin\sbin; D:\cygwin\usr\bin; D:\cygwin\usr\sbine:
C:
chdir D:\cygwin\bin
bash --login -i
好啦,现在可以使用啦。
开始菜单——所有程序——打开cygwin Terminal软件程序检查一下是否正常。
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令(我的是安装在D盘,则改为输入cygcheck -d cygwin),会打印cygwin的用法,则cygwin运行正常。
cygcheck -c :检查所有安装软件的版本号
如果要查看某一个软件安装的版本,直接用cygcheck -c + 软件名称,如cygcheck -c gzip
例如我们要查看cygwin当前的版本,则输入cygcheck -c cygwin
然后依次输入gcc –v,g++ --version,make –version,gdb –version进行测试,(注意空格和-)如果都打印出版本信息和一些描述信息,这说明cygwin安装成功了。
另外uname -a 可以查看cygwin的版本和内核版本
第四步 ADT-eclipse-sdk
我下载的是adt-bundle-windows-x86-20131030。
ADT-Bundle for Windows 是由Google Android官方提供的集成式IDE,已经包含了Eclipse,你无需再去下载Eclipse,并且里面已集成了插件,它解决了大部分新手通过eclipse来配置Android开发环境的复杂问题。 有了ADT-Bundle,新涉足安卓开发的同学也无需再像以前那样在网上参考繁琐的配置教程,可以轻松一步到位进行Android应用开发。
下载ADT-Bundle for Windows 官方下载地址:http://developer.android.com/sdk/index.html
adt-bundle-windows安装教程,地址:http://wenku.baidu.com/link?url=b8ZpYVz6ehT6PusOSMWidEaBqDiUs_OBbgQk34w2q2dJRUMMtQCC9mmLMplGXHRUkkTyGBXxLsqTpJSXMG0a-FHZOAQaOKOO5Zi6HSKLBDm
直接把下载下来的的adt-bundle-windows-xxx-xxx.zip,解压到你需要安装的位置。
打开解压出来的文件夹里面的 SDK Manager.exe (也可以运行eclipse/eclipse.exe 然后通过Windows -> Android SDK Manager打开)
勾选上你想要开发的目标手机安卓版本,tools和Extras可以全下载.
注意:API选1个就够用了.
千万别学我把所有版本的API都下载了,没必要!浪费时间
以下是反面教材!!
然后点击Install Packages 按提示next,把各项逐一都点击Accept Lichtense(批量比较快)或者逐个accept允许,然后就按Install。
接下来是等待安装,这是一个很漫长,很漫长的过程!
如果过程中,没装完,但是又显示Done,可以重复上一个步骤再次按Install Packages,又可以继续下载和安装packages。
Install Packages完毕后,我们需要设置系统变量。
鼠标右击“我的电脑”,选择“属性”->“高级”->“环境变量”->“系统变量”,把android的sdk的platform-tools,android的sdk的tools增加到环境变量path中去。
例如我的是;E:\adt-bundle-windows-x86-20131030\sdk\platform-tools;E:\adt-bundle-windows-x86-20131030\sdk\tools
打开eclipse,点击window->perfernces->Android,
核对一下在SDK Location中,它已经自动填上我们解压后路径,例如我的是E:\adt-bundle-windows-x86-20131030\sdk(解压缩后的文件已经自动填写好路径)
再继续单击Android->NDK中填ndk路径,例如我的是E:\android-ndk-r7(自己的NDK解压路径),点击ok确认。
检查SDK是否安装和环境配置成功。 进入cmd命令窗口,运行android –h 如果有类似的用法输出则表明成功。
配置Android AVD(虚拟模拟器)
打开Eclipse(路径是解压缩后的e文件夹clipse/eclipse.exe)。
依次点击菜单栏的Windows->Android Virtual Device Manger,从而打开AVD管理器。
点击新弹出的页面右侧的New按钮 创建你一新的AVD,如下图,我做了一个简单说明,参数其实你都是可以自己随意填的,点击OK就行了。
这里的目标设备版本是模拟的,可以稍微设置高一些的版本。
你配置的这个AVD是会做为你安卓应用的默认调试摸拟器,当然你也可以配置多个。
如果想参考自己的手机设置,可能你会疑惑Android手机型号怎么看?
打开手机的设置,拉到最底下有个关于手机,点击查看就可以看到了手机型号和安卓版本,可以根据手机型号网上查屏幕分辨率。
安卓模拟器里面的cpu/abi里面有ARM、intel x86、mips应该选择哪个?
直接选arm就行。因为arm是常见安卓手机的CPU指令,而intel x86是电脑常用,手机上很少用,兼容一般,最后那个mips不作考虑。
点击start就会出现launch Options,如下图
launch Options中把Scale display to real size可以看到真实的尺寸。
创建一个Hello World项目
通过File -> New-> Android Application Project, 然后输入Hello Android(自己的项目名字),next,finish。
点击上图中的图标,可以看到我们的项目如下图。
从运行Hello World
在Eclipse里Run As --> Android Application就可以在你配置的模拟器里运行了,
可是结果运行程序后怎么也出不来Hello world这几个字。
原来是因为模拟器即AVD(Android Vitual Device)启动很慢,需要等较长一段时间才能启动,上面的画面就是启动画面。再等待一会出现如下画面:
开机画面上显示键盘锁定(Screen locked),只要点击右面键盘的Menu键就会解锁出现Hello World了。
有了ADT-Bundle这个东西,方便了很多。
如果你没有看到HelloWorld,不要着急,可能是新建项目与Android AVD(虚拟模拟器)中设置的android版本不兼容,可以试试再建一个不同的AVD试试。我做的时候也是第一个AVD看不到HelloWorld,反而看到一个“make yourself at home”。如下图
但是加了第二个AVD后又显示正常了。关于安卓版本的问题,后面还需要继续学习。
在发布Android应用到模拟器的过程中,ADT插件自动将应用打包,打包名字为"xxx.apk",".apk"是Android软件安装包的后缀名。
该文件不仅可以用于虚拟机直接运行,也直接复制到Android手机上面安装运行。
如果模拟器中看不到hello world也可以直接把apk安装包文件复制到手机安装后一般都可以看到helloworld。
安卓新建项目参考资料:http://book.51cto.com/art/201108/284318.htm
以上开发环境搭建好后,我们就可以开始交叉编译,把cocos2d-x写好的代码和资源文件用来生成apk文件。
具体操作示例,这里是传送门:http://blog.csdn.net/u013174689/article/details/18700217