在win8上搞这东西搞了两天,同学在苹果的本上配置只用了很短的时间....
在此只记录配置的核心部分,jdk,sdk,eclipse,adt,ndk,cdt,cygwin安装网上都有大篇的安装教程不用累述。
我的开发工具的安装目录或者解压目录如下:
1、sdk:D:\adt-bundle-windows-x86\sdk
2、eclipse:D:\adt-bundle-windows-x86\eclipse
3、ndk:D:\android-ndk-r8e
4、cygwin:D:\cygwin
5、jdk:D:\Java\jdk1.6.0_11
6、当然还得下载最新的cocos2d-x给出http://cocos2d.cocoachina.com/download
我的是cocos2d-2.1rc0-x-2.1.3.zip解压到一个目录我的是:D:\cocos2d-2.1rc0-x-2.1.3
****下面的步骤我认为都是很重要的*****
1、JDK环境变量
新建环境变量:JAVA_HOME 值为:D:\Java\jdk1.6.0_11(jdk安装目录)
新建环境变量:CLASSPATH 值为: .;%JAVA_HOME%\lib; ( 注意:点号表示当前目录,不能省略)
在系统变量Path的值的前面加入以下内容:%JAVA_HOME%\bin;(注意:这里的分号不能省略)到这里,JDK安装完毕。
单击“开始”—>“运行”—>输入:cmd命令,在CMD窗口中输入:java -version
出现如下界面,就表示安装成功:
新建环境变量:NDK_ROOT 值为:D:\android-ndk-r8e(ndk安装目录)
然后找到名为Path的系统变量,在句首添加%NDK_ROOT%;别忘记分号
3、SDK环境变量
新建环境变量:ANDROID_SDK_HOME 值为:D:\adt-bundle-windows-x86\sdk(sdk安装目录)
然后找到名为Path的系统变量,在句首添加%ANDROID_SDK_HOME%/platform-tools;%ANDROID_SDK_HOME%/tools;别忘记分号
4、cygwin环境变量
在path句首添加D:\cygwin;D:\cygwin\bin;
运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常
- 配置文件权限管理
Cygwin一样模拟了Linux的权限管理体系,这也没有什么不好的,但是跟Microsoft Windows的默认权限管理却有些不对付。常会出现权限问题,一个文件可以手动改,但如果是多个文件就比较麻烦了,我这里采用彻底的解决方法是,在安装好Cygwin以后,禁止Cygwin采用POSI体系的权限管理。使用文本编辑器打开 Cygwin目录\etc\fstab,末尾添加代码: none / cygdrive binary,user,noacl,posix=0 0 0
在命令行中进入cygwin目录,并执行cygwin.bat,如果你不是用Administrator账号登录的系统,那么会在cygwin\home\文件夹中生成一个以你的登录名命名的新的文件夹。
修改新生成文件夹中的“.bash_profile ”文件,用UE或editplus等文本编辑器打开,在最后增加: (/d/android-ndk-r8e是安装ndk的路径)
NDK_ROOT=/cygdrive/d/android-ndk-r8e
export NDK_ROOT
然后保存关闭。
5、cocos2d-x配置
进入cocos2d-x目录(我的是D:\cocos2d-2.1rc0-x-2.1.3)选择create-android-project.bat用编辑器打开,在此文件的第一行加上cd /d %~dp0,在该文件中找到以下几个定义 : _CYGBIN、_ANDROIDTOOLS、_NDKROOT。
将_CYGBIN=设置为cycgwin\bin安装的的绝对路径。
将_ANDROIDTOOLS设置为android sdk 的tools绝对路径
将_NDKROOT设置为android ndk的绝对路径
修改完毕,保存后。如下图
6、修改ndk的一个自带bug
在ndk目录下找到D:\android-ndk-r8e\build\core\build-binary.mk用编辑器打开,大概在第49行:将$(cleantarget): PRIVATE_CLEAN_FILES := ($(my)OBJS)修改为$(cleantarget): PRIVATE_CLEAN_FILES := $($(my)OBJS)
其实就是多了一个$符号
7、创建一个android+cocos2d-x的HelloWorld程序
在cocos2d-x的目录下找到并双击create-android-project.bat开始工程创建向导
- 首先是输入包名(建议按照android的命名规则),如org.yourname.test
- 然后输入工程名称(注意不要输入已有的文件夹的名字,如果同名,会被覆盖掉的)如HelloWorld
- 选择target id,他会列出不同API方案用ID来标识,根据你的需要选择
- 创建完成(如果创建过程中遇到权限错误,请确认上述Cygwin文件权限管理是否配置过了)
- 查看cocos2d-x的目录下,则多了一个文件夹,文件夹名则为你刚刚输入的工程名称HelloWorld
进去看到三个文件夹:
Classes 存放默认工程的C++文件
proj.android android的eclipse工程项目
Resources 资源文件
****选择sdk***输入id号
打开eclipse将项目导入Eclipse;File->Import->Android->Existing Android Code Into Workspace
Root Directory 选择刚刚创建的HelloWorld项目下的proj.android,如下图
然后会报一个错误,是因为没有导入cocos2d-x的java库造成的,我们导入D:\cocos2d-2.1rc0-x-2.1.3\cocos2dx\platform\android\java
在Eclipse里,右键项目->properties->builders->new->program->ok
依次配置4个界面如下图
1)main面板下->location->browse file system->选择你的NDK目录下的ndk-build.cmd
main面板下->working directory->browse workspace..->选择当前项目
refresh面板下的specific resource选择为当前目录下的jni文件夹,如下图
environment面板下->new...->如下所示
value处填写
cocos2d-x的根目录+分号+cocos2d-x的根目录/cocos2dx/platform/third_party/android/prebuilt
Build Options面板下,Specify Resouces..选择当前项目的jni文件夹,其他配置如下图:
都弄好以后如果出现
说明api等级不符合,只要在AndroidManifest.xml里面把minSdkversion修改一下就行了,如我应该修改成9
最后在clean一下,就等编译了,时间稍微有点长,需要耐心,如果出现如下情况说明就好了!此时运行一下程序
运行如下
如果出现黑屏现象,则是因为权限不够的问题,此时将资源文件复制到assest文件夹下。
将NDK 目录下的/sources/cxx-stl/gnu-libstdc++/libs/armeabi/ 目录下的libgnustl_static.a 文件复
制到项目文件夹下的obj/local/armeabi/libgnustl_static.a 目录下,之后右键项目选择runas-Android
Application 运行就搞定了!
8、运行cocos2d-x的demo
cocos2d-x自带了很多的demo,可以在D:\cocos2d-2.1rc0-x-2.1.3\samples下找到我们选择D:\cocos2d-2.1rc0-x-2.1.3\samples\Cpp\TestCpp\proj.android导入eclipse工程
直接就可以编译运行的,如果不行就按照上面的办法设置一个Builder,但是有时能够编译却不能运行会出现一个**target pattren no % .stop(具体我也记不清了)的错误此时只要右键-项目名称-属性-C++构建,如下图:
在构建命令这一行里去掉反斜杠('/'),即把bash ${ProjDirPath}/build_native.sh换成bash ${ProjDirPath}build_native.sh
这样就能够运行程序了,如下图:
如果出现AssetsManager.o的错误则直接清空org文件夹下的的内容再次运行
这样就能运行cocos给的几个小游戏了