天天看點

cocos2d-x3.7 在Windows下打包Android平台APK

一、下載下傳Android環境

搭建Android環境需要用到Android SDK、NDK、Ant和JDK;

下載下傳Android SDK 

下載下傳Android NDk 

下載下傳Android JDK 

下載下傳Ant 

其中JDK是需要安裝的,其他的都直接解壓即可。将SDK NDK 和ANT解壓縮到同一個檔案夾中,我解壓後檔案都放在了e:\Android檔案夾下

cocos2d-x3.7 在Windows下打包Android平台APK

SDK如果下載下傳下來的adt檔案那麼把裡面的SDK檔案夾考出來,修改後

cocos2d-x3.7 在Windows下打包Android平台APK

二、配置JDK

在JDK安裝完畢之後,需要手動進行環境變量的配置

1、系統變量裡建立JAVA_HOME變量,變量值為:C:\Program Files\Java\jdk1.8.0_05(根據自己的安裝路徑填寫)

2、建立系統變量classpath變量,變量值為:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面的“.”不要忘記了)

3、在系統變量path變量(已存在不用建立)添加變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意變量值之間用“;”隔開)

環境變量的解析:

JAVA_HOME:jdk的安裝路徑

classpath:java加載類路徑,隻有類在classpath中java指令才能識别,在路徑前加了個"."表示目前路徑。

path:系統在任何路徑下都可以識别java,javac指令。

在配置完成之後,我們打開cmd指令視窗,輸入java或javac 回車,如果不是列印“java不是内部或外部指令”那就說明配置成功了。

cocos2d-x3.7 在Windows下打包Android平台APK
cocos2d-x3.7 在Windows下打包Android平台APK
cocos2d-x3.7 在Windows下打包Android平台APK
cocos2d-x3.7 在Windows下打包Android平台APK

三、配置Ant環境變量

把ant的存放路徑加入系統Path變量。

cocos2d-x3.7 在Windows下打包Android平台APK
cocos2d-x3.7 在Windows下打包Android平台APK

四、配置cocos2dx 3.1 Android 環境關聯

以上已做好準備工作,打開cocos2dx目錄下的 setup.py。

cocos2d-x3.7 在Windows下打包Android平台APK

輸入ndk的路徑。

cocos2d-x3.7 在Windows下打包Android平台APK

輸入sdk路徑

cocos2d-x3.7 在Windows下打包Android平台APK

最後輸入的是 ant的路徑。

OK,三個路徑都已經配置完畢:

cocos2d-x3.7 在Windows下打包Android平台APK

五、打包Apk

(注意:在打包apk之前需要修改proj.android/jni檔案夾下的Android.mk檔案 添加自己新增的CPP檔案,這裡的新增指的是非cocos2dx生成的項目檔案(自己新增的檔案)。一定要把自己新增的檔案或檔案夾包含進apk。)

首先我們拿官方的 cpp-tests項目來試手吧!按住shift鍵+滑鼠右鍵 選擇在此處打開指令視窗。

cocos2d-x3.7 在Windows下打包Android平台APK

然後就可以使用 cocos compile -p android --ap android-20方式編譯APK檔案了(--ap android-20是指定android平台,我用的是20,也有19等其他的,根據跟人下載下傳的而定)

cocos2d-x3.7 在Windows下打包Android平台APK

然後運作:cocos run -p android --ap android-20

當出現:“ -waiting for device -    error:  ”的時候按Ctrl+C終止就可以了。

漫長的等待吧,當然這裡要提醒一點3.2版本用的是 android-20,如果E:\Android\sdk\platforms目錄下沒有android-20 請建立一個空的。

cocos2d-x3.7 在Windows下打包Android平台APK

等待完畢之後 看下這個檔案夾下的 apk吧!可以安裝到手機上試一下了。

如果需要把項目在真機上弄成豎屏,隻需在proj.android檔案夾下的AndroidManifest.xml中改一改, android:screenOrientation="landscape"(橫屏),android:screenOrientation="portrait"(豎屏),它預設為橫屏

六、異常處理

1、 Android platform not specified, searching a default one...

Can't find right android-platform for project :

"F:\cocos2d-x-3.1.1\tests\cpp-tests\proj.android".

The android-platform should be equal/larger than 20

如果你遇到這個問題,那麼就要在

cocos2d-x3.7 在Windows下打包Android平台APK

下建立一個空的android-20檔案夾,這個問題坑了我很久!同時要檢視指令是否是 –ap 20(雙-)。

檢查\proj.android目錄下的project.properties是否是android-20

cocos2d-x3.7 在Windows下打包Android平台APK

2、make.exe: *** No rule to make target `/home/tubuntu/game/android-ndk-r9d/sources/android/cpufeatures/cpu-features.c', needed by `obj/local/armeabi/objs/cpufeatures/cpu-features.o'.  Stop. 

解決辦法:從字尾名來看,這個肯定是編譯中間檔案(可以删除)。而Make 的No rule to make target則一般說明是已經存在了,不用再編譯。是以我們進入E:\cocos2d-x-3.2\Projects\HelloCpp111\proj.android\obj\local\armeabi把objs-debug檔案夾下面的檔案(包括檔案夾)全删除。

3、make.exe:***obj/local/libcoccos2dcpp.so……

解決辦法:産生這個原因的是沒有在Android.mk 檔案中添加自己的檔案,進入E:\cocos2d-x-3.2\Projects\HelloCpp111\proj.android\jni 檔案夾下打開Android.mk檔案,添加自己的檔案,如下圖:

cocos2d-x3.7 在Windows下打包Android平台APK

4、  編譯時,提示找不到gcc工具鍊 (Couldn't find the gcc toolchain)。

這個問題也煩了我很久!去檢查下ndk的配置路徑!NDK_ROOT是否正确!然後3.1版本需要的NDK是最新的版本,去安卓網站下一個最新的版本r9d吧!

5、  如果遇到android api問題

cocos2d-x3.7 在Windows下打包Android平台APK

找到運作進行更新,看缺哪個api就更新哪個,不過這個更新比較慢,原因google被禁了

6、出現 build.xml:932 build.xml:950 錯誤 

        這是由于你的資源檔案中出現了中文命名的檔案,AAPT是沒有辦法識别的, IOS是可以識别的,但是AAPT不行,是以最好不要使用中文命名任何檔案或者檔案夾。