Cocos2d-x 3.2 學習筆記(四)學習打包Android平臺APK!

 從cocos2dx 3.2項目打包成apk安卓應用文件,搭建安卓環境的步驟有點繁瑣,但搭建一次以後,之後就會很是快捷!html

(涉及到3.1.1版本的,請自動對應3.2版本,3.x版本的環境搭建都是同樣的)java

1、下載Android環境android

搭建Android環境須要用到Android SDK、NDK、Ant和JDK;c++

Android SDK下載http://developer.android.com/sdk/index.htmlapache

Android NDk下載http://developer.android.com/tools/sdk/ndk/index.htmlapi

Android JDK下載http://www.oracle.com/technetwork/java/javase/downloads/index.htmloracle

Ant下載http://ant.apache.org/bindownload.cgiide

其中JDK是須要安裝的,其餘的都直接解壓便可。將SDK NDK 和ANT解壓縮到同一個文件夾中,我解壓後文件都放在了e:\Android文件夾下工具

 

SDK若是下載下來的adt文件那麼把裏面的SDK文件夾考出來,修改後網站

 

2、配置JDK

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

一、系統變量裏新建JAVA_HOME變量,變量值爲:C:\Program Files\Java\jdk1.8.0_05(根據本身的安裝路徑填寫)

二、新建系統變量classpath變量,變量值爲:

.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面的. 不要忘記了)

三、在系統變量path變量(已存在不用新建)添加變量值:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意變量值之間用「;」隔開)

環境變量的解析:

JAVA_HOME:jdk的安裝路徑

classpath:java加載類路徑,只有類在classpath中java命令才能識別,在路徑前加了個"."表示當前路徑。

path:系統在任何路徑下均可以識別java,javac命令。

在配置完成以後,咱們打開cmd命令窗口,輸入java或javac 回車,若是不是打印「java不是內部或外部命令」那就說明配置成功了。

 

 

 

3、配置Ant環境變量

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

 

4、配置cocos2dx 3.1 Android 環境關聯

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

 

輸入ndk的路徑。

 

輸入sdk路徑

 

最後輸入的是 ant的路徑

 

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

 

 

5、打包Apk

而後就能夠在項目目錄下使用 cocos compile -p android方式編譯APK文件了。

注意:在打包apk以前須要修改proj.android/jni文件夾下的Android.mk文件 添加本身新增的CPP文件,這裏的新增指的是非cocos2dx生成的項目文件(本身新增的文件)。必定要把本身新增的文件或文件夾包含進apk。

首先咱們拿官方的 cpp-tests項目來試手吧!

按住shift鍵+鼠標右鍵 選擇在此處打開命令窗口。

 

 

而後就可使用 cocos compile -p android --ap 20方式編譯APK文件了(--ap 20是指定android平臺)

 

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

 

等待完畢以後 看下這個文件夾下的 apk吧!能夠安裝到手機上試一下了。

 

6、異常處理:(我會不定時的更新遇到的問題,讓你們都不走彎路)

一、  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

若是你遇到這個問題,那麼就要在

下建立一個空的android-20文件夾,這個問題坑了我好久!同時要查看命令是不是 –ap 20(雙-)。

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

 

 

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

這個問題也煩了我好久!去檢查下ndk的配置路徑!NDK_ROOT是否正確!而後3.1版本須要的NDK是最新的版本,

去安卓網站http://developer.android.com/tools/sdk/ndk/index.html#Installing下一個最新的版本r9d吧!

三、  若是遇到android api問題

 

找到運行進行更新,看缺哪一個api就更新哪一個,不過這個更新比較慢……緣由google被禁……

四、Android NDK: Invalid APP_STL value: c++_static 這個要修改jni/Application.mk

APP_STL := c++_static

NDK_TOOLCHAIN_VERSION=clang

APP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -std=c++11 -fsigned-char

APP_LDFLAGS := -latomic

改爲:

APP_STL := gnustl_static

# add -Wno-literal-suffix to avoid warning: warning: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wliteral-suffix] 

# in NDK_ROOT/arch-arm/usr/include/sys/cdefs_elf.h:35:28: when using ndk-r9

APP_CPPFLAGS := -frtti -DCOCOS2D_DEBUG=1 -std=c++11 -Wno-literal-suffix -fsigned-char

五、Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 

這是由於NDK指定的版本與minSdkVersion不一致的問題,修改AndroidManifest.xml文件 其中android:minSdkVersion修改為<uses-sdk android:minSdkVersion="20"/>

相關文章
相關標籤/搜索