1. 程式人生 > >cocos2d-x在安卓平臺編譯常見的2個問題及解決辦法

cocos2d-x在安卓平臺編譯常見的2個問題及解決辦法

一.Eclipse匯入編譯好的安卓專案的時候,提示:Cocos2dxActivity cannot be resolved to a type

   解決辦法:

  eclipse匯入專案後會出現這個問題,事實上在專案中有一個project.properties檔案其中有這麼一行配置資訊:

  1. android.library.reference.1=../../cocos2dx/platform/android/java  
它的意思是將此專案檔案的上上級資料夾(也就是cocos2d-x引擎的根目錄)的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