cocos2d-x在安卓平臺編譯常見的2個問題及解決辦法
一.Eclipse匯入編譯好的安卓專案的時候,提示:Cocos2dxActivity cannot be resolved to a type
解決辦法:
eclipse匯入專案後會出現這個問題,事實上在專案中有一個project.properties檔案其中有這麼一行配置資訊:
- android.library.reference.1=../../cocos2dx/platform/android/java
1. 生成的專案不能移動到其他目錄下,只能在cocos2dx引擎的根目錄。
2. 匯入到eclipse的時候,不能選擇Copy project into workspace這個選項。
有兩種兩種做法:
1. 只需要將cocos2d-x引擎的根目錄的cocos2dx/platform/android/java/src資料夾下資料夾全部複製到專案的src包下即可。
2. 也可以匯入cocos2dx/platform/android/java這個工程生成一個jar檔案新增到專案的libs資料夾下即可,通過import選項匯入。
這兩種方法都會在最終生成apk時將依賴複製到其中的。推薦第2種
二.用cocos run -p android 編譯出錯,無法編譯,出錯主要資訊摘要如下:-dex:
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] Merged dex A (6 defs/2.0KiB) with dex B (84 defs/107.9KiB). Result i
s 90 defs/129.7KiB. Took 0.0s
[dx] com.android.dex.DexException: Multiple dex files define Lcom/chukong
/cocosplay/client/CocosPlayClient;
匯入cocos2dx/platform/android/java這個工程後,project.properties會變成兩行,
android.library.reference.1=../cocos2d/cocos/platform/android/java
android.library.reference.2=../../../cocos2d-x-3.6/cocos/platform/android/java
這裡有重複,造成上述出錯,編譯的時候,要把第二行註釋掉:
android.library.reference.1=../cocos2d/cocos/platform/android/java
#android.library.reference.2=../../../cocos2d-x-3.6/cocos/platform/android/java