Windows下搭建cocos2d-x开发到生成apk环境
详细搭建步骤如下:
1、Android 开发环境搭建
1、下载 JDK 并配置环境
2、下载 Eclipse
3、下载 Android SDK
4、Eclipse下 , 安装 ADT
2、下载安装Android NDK
http://developer.android.com/sdk/ndk/index.html
选择相应版本。
3、下载安装cygwin
由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。通过它,你就可以在不安装linux的情况下使用NDK来编译C、C++代码了。下面我们一步一步的安装cygwin吧。
到网上下载个本地安装包方便些。
本地安装:
1. 解压安装包
2. 选择3)Install from Local Directory,自定义一个文件夹存放cygwin
3. 选择要安装的目录(压缩包中有),注意:上一步目录不要与这个路径相同。
4. 交换符点击变成 Install
5. 测试 运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
然后依次输入gcc –v,g++ -v,make –v,gdb –v进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!
4、配置NDK环境变量
注意:最好不要用记事本打开.bash_profile文件,用UltraEdit等打开,原因是linux、windows环境下的换行符不同,用UltraEdit打开时会提示“你想转换为DOS格式吗?选否,否则编码格式就被你改了,用cygwin运行NDK的时候就显示如下错误了:
“-bash: $'\r': command not found
” 如果真要是这样了,解决办法:cygwin下etc\skel和etc\defaolts\etc\skel中有这个文件, Copy到C:\cygwin\home\Administrator下,然后再运行就可以了。
1、 首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:E:\cygwin \home\Administrator\.bash_profile。
2、 打开bash_profile文件,添加NDK=/cygdrive/<你的盘符>/<android ndk 目录> 例如:NDK=/cygdrive/e/android-ndk-r5
export NDK (我用的NDK_ROOT)
NDK这个名字是随便取的,为了方面以后使用方便,选个简短的名字,然后保存
3、打开cygwin,输入cd $NDK,如果输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明环境变量设置成功了。
5、用NDK来编译程序
1、 现在我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的例子hello-jni,我的位于E:\android-ndk-r7\samples\hello-jni(根据你具体的安装位置而定),
2、运行cygwin,输入命令cd/cygdrive/e/android-ndk-r7/samples/hello-jni,进入到E:\android-ndk-r7\samples\hello-jni目录。
3、输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)
4、 此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!
6、下载cocos2d-x-2.0.1解压
我先说第一种:创建android版的cocos2dx的HelloWorld
1、用代码阅读工具打开create-android-project.bat(千万不用将它设置成默认程序打开,不然你就打不开了,倒是后就需要修改去注册表中修改,默认启动方式了。我是用UtralEdit打开的,用它打开的时候,千万不要转换其格式了噢)
2、设置环境变量路径:
set _CYGBIN=E:\cygwin\bin(请设置成自己对应的安装路径)
set _ANDROIDTOOLS=E:\android-sdk-windows\tools(同上)
set _NDKROOT=E:\android-ndk-r7b(同上)
记得保存,设置好这3个环境变量就ok了.
3、重新打开create-android-project.bat,(注意:如果是win7,请以管理员的身份运行,否则又会出现问题)
输入包名(自定义),然后再输入工程名(自定义),
输入android版本id:(如:1,2,…8)注意的选2.2以上的版本才支持GLES2.0,不然导入eclipse会提示不支持GLES2.0的,那就是没有选2.2以上的原因,不过此时自己改成2.2的包就可以了
4、用cygwin编译我们产生的工程
先进入工程目录,cd /cygdrive/e/cocos2d-x/**/bzfy/proj.android/ (cd 到自己想要的项目)
然后 ./build_native.sh
等一段时间……….不是卡住了。
由于我之前就已经编译过产生so了,所以会这样,如果是第一次编译会产生很多信息的,不过最后的信息和我这一样,这是你创建的工程HelloWorld就成功了。
5、将工程导入到eclipse中...
我们运行:
成功
第二种:win32的HelloWorld
1、安装vs2010
2、然后运行cocos2d-x下的cocos2d-win32.vc2010.sln
3、右击解决方案、然后选生成解决方案
这里需要等待一段时间....
如果成功, 然后点击HelloWorld工程,右击设置为启动项,然后调试运行即可。
补充:
1、可以在Eclipse中集成C/C++开发环境CDT(网上资料很多)
2、JNI编译环境配置
如果我们修改“/HelloJni/jni/hello-jni.c”文件,动态链接库 libhello-jni.so文件却不会被重新编译生成。这是因为我们没有给JNI项目添加它需要的编译配置和依赖库。现在我们来配置它。
第一步:转换工程。点击“文件 -> 新建 -> 其他”(快捷键:Ctrl+N)。选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。进入“下一步”。
第二步:选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”。确定后提示的“透视图”不清楚是什么,点击“是”即可。
第三步:在“HelloJni”工程上右键,选择“属性”。配置“C/C++ Build”和“C/C++ General -> Pathsand Symbols”。
C/C++ Build:点击“C/C++ Build”,在右边的“BuilderSettings”中去掉默认勾选的“Use default build command”复选框。设置Build command为“bashD:\Java\android-ndk-r8\ndk-build”。
C/C++ General -> Paths andSymbols:在Includes下add新的GNU C依赖路径。此“HelloJni”工程需要“D:\Java\android-ndk-r8\platforms\android-8\arch- arm\usr\include”即可,以后根据不同项目选择不同的依赖库。
验证:
将“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”如改为“Hello JNI from Baron!”,运行后在模拟器上输出的字符串改变即说明配置成功。
ps:部分资料来自网上,自己配置环境过程中参考的各种资料 忘记出处了。