1、Android 开发环境搭建
Android开发环境搭建不是重点,相信看此文章的很多人都已经搭建成功,这里随便概述性的说说。
1、下载 JDK
2、下载 Eclipse
3、下载 Android SDK
4、启动Eclipse , 安装 ADT
2、下载安装Android NDK
我使用的NDK版本为r5
Google 出的最新NDK 为 r7 下载地址为
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吧。
(安装的时候忘记截图了)
首先,你得先跑到http://www.cygwin.com下载setup.exe
1、 然后双击运行吧,运行后你将看到安装向导界面:
2、 点击下一步
此时让你选择安装方式:
1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。
3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。
3、选择第一项,然后点击下一步:
4、选择要安装的目录,注意,最好不要放到有中文和空格的目录里,似乎会造成安装出问题,其它选项不用变,之后点下一步:
5、上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目录,直接点下一步就可以:
6、此时你共有三种连接方式选择:
1) Direct Connection:直接连接。
2) Use IE5 Settings:使用IE的连接参数设置进行连接。
3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。
用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”,
7、 这是选择要下载的站点,我用的是http://mirrors.kernel.org,速度感觉还挺快,选择后点下一步
8、 此时会下载加载安装包列表
9、Search是可以输入你要下载的包的名称,能够快速筛选出你要下载的包。那四个单选按钮是选择下边树的样式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包
10、 然后开始选择安装这些包吧,点skip,把它变成数字版本格式,要确保Bin项变成叉号,而Src项是源码,这个就没必要选了。
11、 下面测试一下cygwin是不是已经安装好了。
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
然后依次输入gcc –v,g++ -v,make –v,gdb –v进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!
4、配置NDK环境变量
为了不让大家步入我的后尘,在这里得
注意:最好不要用记事本打开.bash_profile文件,用UltraEdit打开时会有个提示“你想转换C:\cygwin\home\Administrator\.bash_profile为DOS格式吗?”呵呵!!这里千万不要点是,否则编码格式就被你改了,用cygwin运行NDK的时候就显示如下错误了:
“-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /home/lenovo/.bash_profile: line 47: syntax error: unexpected end of file
”如果真要是这样了,解决办法:cygwin下etc\skel和etc\defaolts\etc\skel中有这个文件,重新copy此文件出来一份,然后将你改坏了的那个.bash_profile内容copy覆盖这个文件的内容,然后在此文件Copy到C:\cygwin\home\Administrator下,然后再运行就可以了。
1、 首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile,(注意:我安装的时候我的home文件夹下面神马都没有,解决 的办法:首先打开环境变量,把里面的用户变量中的HOME变量删掉,在E:\cygwin\home文件夹下建立名为Administrator的文件夹(是用户名),然后把E:\cygwin\etc\skel\.bash_profile拷贝到该文件夹下)。
2、 打开bash_profile文件,添加NDK=/cygdrive/<你的盘符>/<android ndk 目录> 例如:NDK=/cygdrive/e/android-ndk-r5
export NDK
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就运行正常啦!
特别说明:
cocos2d-2.0.3:运行create-android-project.bat,然后用cygwin编译后,cocos2dx-2.0创建的helloworld不生成org.cocos2dx.lib,估计新版本又有改动(解决办法:cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\src去copy)
cocos2d-2.0.2:运行ok,产生了lib包,但是没有自带win32的HelloWorld,由于之初不会创建win32的HelloWorld
cocos2d-2.0.1:利用create-android-project.bat,然后用cygwin编译后,导入eclipse中ok,win32创建的HelloWorld也ok,推荐大家使用2.0.1的这个版本,会减少很多麻烦。
6、下载cocos2d-x-2.0.1解压
我先说第一种:创建android版的cocos2dx的HelloWorld
1、用代码阅读工具打开create-android-project.bat(千万不用将它设置成默认程序打开,不然你就打不开了,倒是后就需要修改去注册表中修改,默认启动方式了。我是用UtralEdit打开的,用它打开的时候,千万不要转换其格式了噢)
2、设置环境变量路径:
set _CYGBIN=C:\cygwin\bin(这是我的路径,请设置成自己对应的安装路径)
set _ANDROIDTOOLS=C:\Users\Potter\Documents\work\Android\android-sdk-windows\tools(同理)
set _NDKROOT=C:\Users\Potter\Documents\work\Android\android-ndk-r8(同理)
记得保存,设置好这3个环境变量就ok了.
3、重新打开create-android-project.bat,(注意:如果是win7,请以管理员的身份运行,否则又会出现问题)下图所示:
输入包名,然后再输入工程名,
输入android版本id:注意的选2.2以上的版本才支持GLES2.0,不然导入eclipse会提示不支持GLES2.0的,那就是没有选2.2以上的原因,不过此时自己改成2.2的包就可以了
4、用cygwin编译我们产生的工程
如下图所示:
然后回车,显示如下结果:
由于我之前就已经编译过产生so了,所以会这样,如果是第一次编译会产生很多信息的,不过最后的信息和我这一样,这是你创建的工程HelloWorld就成功了。
补充:
问题:库生成的时候没有权限造成so生成失败(win7可能出现此问题)
如下图:
解决办法:运行cmd 将其路径定位到你的工程库目录下(如:D:\work\cocos2d-x-2.0.1\MyHelloWorld\proj.android\obj\local\armeabi 这是我的,你的对应)
然后执行:
takeown /f * /a /r
然后再执行:
icacls * /t /grant:r everyone:f
然后再用cygwin去生成ok
5、将工程导入到eclipse中...
注意:有的可能导不进来,也就是找不到工程,哈哈!那是少了两个文件,在别的工程里去copy一份过来,就能看到了。导入进来有感叹号!别急着运行,project中的clean下,然后稍等一下,工程没有感到好了,ok,这是我们运行:
哈哈!高兴一下吧~
第二种:win32的HelloWorld
我用我的mac在win7下搞了昨天一天,然后在我原来的老笔记本上装,同样的配置:vs2010+cocos2dx-2.0.1结果,结果跑起来非常顺利,一下就成功了。结果在mac上的win7下出现各种问题,费劲各种奏折,看了n篇文章,反复操作,然后不断的请高手指教,终于是在我的mac上的win7下vs2010上将其把HelloWorld给跑出来了。下面就和大家分享一下,我是如何搭建的,然后遇到了一些什么问题?
1、安装vs2010
2、然后运行cocos2d-x下的cocos2d-win32.vc2010.sln
3、右击解决方案、然后选生成解决方案
这里需要等待一段时间....
结果如下:
运气很好~ 然后点击HelloWorld工程,右击设置为启动项,然后调试运行....这是幸运人士显示的结果:
如果这个过程全是一次性通过的,恭喜你!你的运气真的非常棒!....
接下来截出这个生成过程中,我以前出现过得各种问题的图:
问题一:
以上两种情况出现的原因:你是的Path系统环境变量的路径,被弄没了
变量值,从左拉到右都没有看到关于System32相关的关键变量了....
解决办法:;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
将上面这段环境变量,添加到变量值最后面然后确定,就ok了...
然后再试试:生成和运行cocos2d-x下面的build-win32.bat,就不会出现上面的问题了。
问题2:
这个问题,绝大部分人生成的时候都会,报这个错,直接将cocos2d-x下面别的目录下,copy到cocos2d-x-2.0.1的Debug.win32下面,就ok了
还有很多什么缺这个,缺那个的,文件失败的,都采用这种方式去处理,直到不再生成文件或者什么失败的情况,好了,现在运行后,HelloWorld神奇的出现了
各种开心吧~~
补充:在win32下创建自己的工程,为了以后方便,也将此内容更新到此处~
第一步:运行InstallWizardForVS2010.js(我用的是vs2010,你选择对应的,我的目录如下:D:\work\cocos2d-x-2.0.1\template\msvc)
补充:此处可能出现的问题有两种:
问题一:installWizardForVS2010.js 无法打开:
解决办法:
打开注册表编辑器,定位[HKEY_CLASSES_ROOT\.js]这一项,双击默认值将其改为“JSFile”即可
问题二:installWizardForVS2010.js,提示:该文件没有与之关联的程序来执行该操作。请安装一个程序,或者,如果已安装程序,请在默认程序
解决办法:installWizardForVS2010.js右击,打开方式:C:\Windows\System32下的wscript.exe来打开..
第二步:创建工程
如果第一步操作成功,那打开vs创建新工程的时候,在visual C++模块下就会多一个Cocos2d-x..选择他,用他来创建一个MyHelloWorld
下一步:
第三步:添加包含和库 ---》右击工程,选择属性
包含目录:如下图(添加你自己对应的路径)
添加库目录:lib文件夹(在你的工程目录下创建,然后从cocos2dx目录下去copy如下文件到这个lib下面) 如下图:
第四步:生产...然后运行
第五步:添加如下文件到你工程目录下的Debug.win32文件夹下(不知道不知道我这里这些文件怎么来的,就去cocos2dx的Debug.win32目录下面去copy进入)
第六步:运行...显示HelloWorld ok 恭喜了~