win7+cocos2d-x-2.1.4+vs2012环境太简单就不多说了,下面是eclipse环境
一、准备
1.eclipse+adt+sdk:adt-bundle-windows-x86_64-20130729.zip
http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20130729.zip
2.ndk:android-ndk-r8e-windows-x86_64.zip
http://dl.google.com/android/ndk/android-ndk-r8e-windows-x86_64.zip
或android-ndk-r9-windows-x86_64.zip
http://dl.google.com/android/ndk/android-ndk-r9-windows-x86_64.zip
3.cocos2d-x-2.1.4.zip
https://cocos2d-x.googlecode.com/files/cocos2d-x-2.1.4.zip
http://cocos2d-x.googlecode.com/files/cocos2d-x-2.1.4.zip
4.JDK:jdk-7u25-windows-x64.exe
二、配置java环境
JAVA_HOME:D:AndoridJavajdk1.7.0_25(安装路径)
CLASSPATH:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;
Path:%JAVA_HOME%in;%JAVA_HOME%jrein;
然后命令行:java -version
命令行:java
命令行:javac
到此java环境完成
三、配置eclipse(此来自部分网络,自己配图并配置完成,以备电脑重装)
- 打开eclipse,点击window->perfernces->Android,在SDK Location中填上刚刚下的adt-bundle-windows-x86_64-20130729.zip解压后的D:Andoridadt-bundle-windows-x86_64-20130729sdk(自己的解压路径)
- Android->NDK中填ndk路径 D:Andoridandroid-ndk-r9(自己的解压路径)
- 导入Cocos2dx例子工程: Eclipse中File->New->Other...选择Andriod Project from Existing Code在Import Projects的Root Directory中导入D:Andoridcocos2d-x-2.1.4samplesHelloCppproj.android(注意, 不要选中 Copy project into workspace, 否则路径编乱很难编译成功)
- 接着点击一下添加的HelloCpp项目,然后Project->Properties->Builder->New->Program
这里去掉 CDT Builder的勾 因为我们要自己创建一个,并且不受这个的影响
在Main标签中手动填NDK编译命令行 D:Andoridandroid-ndk-r9ndk-build.cmd,点击第二个Browser Workspace选中当前工程,出现${workspace_loc:/HelloCpp} 换到Environment标签中,点击NEW新建NDK_MODULE_PATH 填写 D:Andoridcocos2d-x-2.1.4cocos2dxplatform hird_partyandroidprebuilt
- porject->clean
- Run As->Android Application.
- 记得将D:Andoridcocos2d-x-2.1.4cocos2dxplatformandroidjavasrcorgcocos2dx路径下的 lib文件夹复制到D:Andoridcocos2d-x-2.1.4samplesCppHelloCppproj.androidsrcorgcocos2dx下
8.用ndk9可能出现 error: format not a string literal and no format arguments
D:Andoridcocos2d-x-2.1.4samplesCppHelloCppproj.androidjniappliction.mk打开,在最后加上
APP_CFLAGS += -Wno-error=format-security
四、一些问题的解决方案(以下来自网络)
- 本文链接:http://zengrong.net/post/1882.htm
-
配置成功以能运行HelloCpp/proj.android项目为准。
1. Library错误
导入HelloCpp项目后,在 “项目属性-Java Build Path-source” 中加入
cocos2d-x-2.1.4cocos2dxplatformandroidjava
路径。然后进入 “项目属性-Android-Library”,删除这里的“Reference Project”,否则怎么编译都会报错。cygwin环境和ndk only环境均会出现。切记切记!2. NDK_MODULE_PATH 环境变量配置
具体的路径可以查看
cocos2d-x-2.1.4samplesCppHelloCppproj.androiduild_native.sh
的最后几行。cygwin环境不需要设置这个变量,直接执行build_native.sh
即可。这个环境变量可以配置在Windows系统环境变量中,也可以配置在Eclipse项目的builder属性中,还可以直接配置在
project/jni/Application.mk
文件中。若配置在
Application.mk
文件中,可以这样写:NDK_MODULE_PATH:=cocos2d-x-2.1.4;cocos2d-x-2.1.4cocos2dxplatform hird_partyandroidprebuilt
3. Fatal signal 11 (SIGSEGV) at 0×00000000 (code=1)
apk打包成功,安装执行后出现这个错误退出。这一般是由于C++编译失败造成。对于cygwin环境,再执行
build_native.sh
编译一次即可成功;对于ndk only环境,也需要重新执行一次编译(如果没有配置自动刷新,那么可以手动选择Run-build project)。4. 建立自定义builder的问题
死去活来 和网上其他文章都提到为了不依赖cygwin,需要在 “项目属性-Builders” 中建立一个新的buildr,调用NDK提供的
ndk-build.cmd
来编译。这样做有2个问题:- 没有强调 Builder 的编译顺序。默认新建的Builder是处于所有已有Builder的末尾,这可能会导致Android Package Builder等Builder依赖错误;
- 默认存在的 “CDT Builder” 依然是调用
bash build_native.sh
来编译,若没有安装cygwin,可能会出现下面的错误:
bash D:/cocos2d-x/cocos2d-x-2.1.4/samples/Cpp/HelloCpp/proj.android/build_native.sh clean
Cannot run program "bash": Launching failed
Error: Program "bash" not found in PATH
我认为正确的做法是,不必新建一个Builder,而是调整现有的Builder的属性:
- 调整 “项目属性-C/C++ Builder” 选项,将 “Build command” 的值从原来的
bash ${ProjDirPath}/build_native.sh
设置为x:android-ndk-r8e dk-build.cmd
; - 调整 “项目属性-C/C++ builder-Environment” 选项,加入 NDK_MODULE_PATH 环境变量,其值与上面介绍的相同。