Windows下搭建ndk+cgywin环境 从cocos2d-x 到生成apk

Windows下搭建cocos2d-x开发到生成apk环境

详细搭建步骤如下:

1Android 开发环境搭建

1、下载 JDK 配置环境

2、下载 Eclipse

3、下载 Android SDK

4Eclipse , 安装 ADT


2、下载安装Android NDK

http://developer.android.com/sdk/ndk/index.html

选择相应版本。


3、下载安装cygwin

     由于NDK编译代码时必须要用到makegcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unixwindows的应用程序移植,非常有用。通过它,你就可以在不安装linux的情况下使用NDK来编译CC++代码了。下面我们一步一步的安装cygwin吧。

到网上下载个本地安装包方便些。

本地安装

1.     解压安装包

2.     选择3Install from Local Directory,自定义一个文件夹存放cygwin

3.     选择要安装的目录(压缩包中有),注意:上一步目录不要与这个路径相同。

4.     交换符点击变成 Install

5.     测试    运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果statusok的话,则cygwin运行正常。

      然后依次输入gcc –vg++ -vmake –vgdb –v进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!

 


4、配置NDK环境变量

注意:最好不要用记事本打开.bash_profile文件,UltraEdit等打开,原因是linuxwindows环境下的换行符不同,用UltraEdit打开时会提示你想转换为DOS格式吗?选否,否则编码格式就被你改了,用cygwin运行NDK的时候就显示如下错误了:

“-bash: $'\r': command not found
如果真要是这样了,解决办法:cygwinetc\skeletc\defaolts\etc\skel中有这个文件, CopyC:\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-jnilibs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦! 

6、下载cocos2d-x-2.0.1解压

我先说第一种:创建android版的cocos2dxHelloWorld

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...

我们运行:


成功

第二种:win32HelloWorld

1、安装vs2010

2、然后运行cocos2d-x下的cocos2d-win32.vc2010.sln

3、右击解决方案、然后选生成解决方案

这里需要等待一段时间....

如果成功, 然后点击HelloWorld工程,右击设置为启动项,然后调试运行即可。

 

 

补充:

1、可以在Eclipse中集成C/C++开发环境CDT(网上资料很多)

2JNI编译环境配置

   如果我们修改“/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:部分资料来自网上,自己配置环境过程中参考的各种资料 忘记出处了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值