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:\Andorid\Java\jdk1.7.0_25(安裝路徑)
CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
然后命令行:java -version
命令行:java
命令行:javac
到此java環境完成
三、配置eclipse(此來自部分網絡,自己配圖並配置完成,以備電腦重裝)
- 打開eclipse,點擊window->perfernces->Android,在SDK Location中填上剛剛下的adt-bundle-windows-x86_64-20130729.zip解壓后的D:\Andorid\adt-bundle-windows-x86_64-20130729\sdk(自己的解壓路徑)
- Android->NDK中填ndk路徑 D:\Andorid\android-ndk-r9(自己的解壓路徑)
- 導入Cocos2dx例子工程: Eclipse中File->New->Other...選擇Andriod Project from Existing Code在Import Projects的Root Directory中導入D:\Andorid\cocos2d-x-2.1.4\samples\HelloCpp\proj.android\(注意, 不要選中 Copy project into workspace, 否則路徑編亂很難編譯成功)
- 接着點擊一下添加的HelloCpp項目,然后Project->Properties->Builder->New->Program
這里去掉 CDT Builder的勾 因為我們要自己創建一個,並且不受這個的影響
在Main標簽中手動填NDK編譯命令行 D:\Andorid\android-ndk-r9ndk-build.cmd,點擊第二個Browser Workspace選中當前工程,出現${workspace_loc:/HelloCpp}
換到Environment標簽中,點擊NEW新建NDK_MODULE_PATH 填寫 D:\Andorid\cocos2d-x-2.1.4\cocos2dx\platform\third_party\android\prebuilt
- porject->clean
- Run As->Android Application.
- 記得將D:\Andorid\cocos2d-x-2.1.4\cocos2dx\platform\android\java\src\org\cocos2dx路徑下的 lib文件夾復制到D:\Andorid\cocos2d-x-2.1.4\samples\Cpp\HelloCpp\proj.android\src\org\cocos2dx下
8.用ndk9可能出現 error: format not a string literal and no format arguments
D:\Andorid\cocos2d-x-2.1.4\samples\Cpp\HelloCpp\proj.android\jni\appliction.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.4\cocos2dx\platform\android\java
路徑。然后進入 “項目屬性-Android-Library”,刪除這里的“Reference Project”,否則怎么編譯都會報錯。cygwin環境和ndk only環境均會出現。切記切記!2. NDK_MODULE_PATH 環境變量配置
具體的路徑可以查看
cocos2d-x-2.1.4\samples\Cpp\HelloCpp\proj.android\build_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.4\cocos2dx\platform\third_party\android\prebuilt
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\ndk-build.cmd
; - 調整 “項目屬性-C/C++ builder-Environment” 選項,加入 NDK_MODULE_PATH 環境變量,其值與上面介紹的相同。