- 在cygwin控制台運行cocos2d-x產生的項目中的build_native.sh時,報錯:please define NDK_ROOT.
這個問題是因為,沒有配置環境變數,需要做的事情是:
1. 複製/etc/defaults/etc/skel/.bash_profile檔案到/home/使用者名稱/目錄下。(特別注意:如果cygwin安裝後/home內建了.bash_profile,也需要複製。如果使用原來的設定檔,將導致export :command not found,這是一個很奇怪的問題,export作為內建命令居然找不到,不知道是不是cygwin1.7.17-1的一個bug)。
2. 添加命令到.bash_profile檔案中:
#ndk-rootNDK_ROOT=/cygdrive/d/WORKBENCH/android-ndk-r8cexport NDK_ROOT
~/.bash_profile:每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案.
3. 產生的項目必須在cocos2d-x的根目錄不能被更改,因為build_native.sh指令碼中有對COCOS2DX_ROOT="$DIR/../.."的設定。
4. 產生完之後就可以匯入到eclipse中了。
- Are you sure your NDK_MODULE_PATH variable is properly defined
Android.mk引用了一個模組,cocos2dx模組,而NDK沒有找到它,所以報了這個錯,之前的版本是直接包含cocos2dx模組的Android.mk的,所以不會報錯而這裡使用了import,我們也可以使用之前版本的方法來包含它,但貌似import比之前的方法要更好一些錯誤資訊提示我們,可以通過設定NDK_MODULE_PATH環境變數,這裡很有可能設定錯誤。
這裡設定:D:\development\cocos2d-2.0-x-2.0.3;D:\development\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\android\prebuilt
- make: No rule to make target `/cygdrive/c/cocos2d-x/AppTest/proj.android/../../cocos2dx/CCConfiguration.cpp', needed by `obj/local/armeabi/objs-debug/cocos2dx_static/CCConfiguration.o'. Stop.
You should do a Project->Clean before you build. When you try and build without doing this, it causes that error. I found this solution on
http://gameit.ro/2012/01/creating-an-iphone-and-android-cocos2d-x-hybrid-project-updated/. I didn't look to see if there were any other tips/tricks to only doing partial builds, but hopefully it has something.
- Cocos2dxActivity cannot be resolved to a type
build_native.sh運行成功後,將項目匯入到eclipse中後會出現這個問題,事實上在項目中有一個project.properties檔案其中有這麼一行配置資訊:
android.library.reference.1=../../cocos2dx/platform/android/java
它的意思是將此專案檔的上上級檔案夾(也就是cocos2d-x引擎的根目錄)的cocos2dx/platform/android/java檔案夾下的工程作為匯入工程的引用,從../../這個路徑可以看出兩點:
1. 產生的項目不能移動到其他目錄下,只能在cocos2dx引擎的根目錄。
2. 匯入到eclipse的時候,不能選擇Copy project into workspace這個選項。
但是這樣做了,還是會出現這個問題,具體原因我也不知道,但是project.properties中的android.library.reference.1屬性官方是推薦在ubuntu下實現。
那我們要怎麼做呢?
其實很簡單,兩種做法:
1. 只需要將cocos2d-x引擎的根目錄的cocos2dx/platform/android/java/src檔案夾下檔案夾全部複製到項目的src包下即可。
2. 也可以匯入cocos2dx/platform/android/java這個工程產生一個jar檔案添加到項目的libs檔案夾下即可。
這兩種方法都會在最終產生apk時將依賴複製到其中的。