Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!
?從cocos2dx 3.2項目打包成apk安卓應(yīng)用文件,搭建安卓環(huán)境的步驟有點繁瑣,但搭建一次之后,以后就會非常快捷!
(涉及到3.1.1版本的,請自動對應(yīng)3.2版本,3.x版本的環(huán)境搭建都是一樣的)
一、下載Android環(huán)境
搭建Android環(huán)境需要用到Android SDK、NDK、Ant和JDK;
Android SDK下載http://developer.android.com/sdk/index.html
Android NDk下載http://developer.android.com/tools/sdk/ndk/index.html
Android JDK下載http://www.oracle.com/technetwork/java/javase/downloads/index.html
Ant下載http://ant.apache.org/bindownload.cgi
其中JDK是需要安裝的,其他的都直接解壓即可。將SDK?NDK 和ANT解壓縮到同一個文件夾中,我解壓后文件都放在了e:\Android文件夾下
?
SDK如果下載下來的adt文件那么把里面的SDK文件夾考出來,修改后
?
二、配置JDK
在JDK安裝完畢之后,需要手動進行環(huán)境變量的配置
1、系統(tǒng)變量里新建JAVA_HOME變量,變量值為:C:\Program Files\Java\jdk1.8.0_05(根據(jù)自己的安裝路徑填寫)
2、新建系統(tǒng)變量classpath變量,變量值為:
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar (注意前面的. 不要忘記了)
3、在系統(tǒng)變量path變量(已存在不用新建)添加變量值:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin(注意變量值之間用“;”隔開)
環(huán)境變量的解析:
JAVA_HOME:jdk的安裝路徑
classpath:java加載類路徑,只有類在classpath中java命令才能識別,在路徑前加了個"."表示當(dāng)前路徑。
path:系統(tǒng)在任何路徑下都可以識別java,javac命令。
在配置完成之后,我們打開cmd命令窗口,輸入java或javac 回車,如果不是打印“java不是內(nèi)部或外部命令”那就說明配置成功了。
?
?
?
三、配置Ant環(huán)境變量
把ant的存放路徑加入系統(tǒng)Path變量。
?
四、配置cocos2dx 3.1 Android 環(huán)境關(guān)聯(lián)
以上已做好準(zhǔn)備工作,打開cocos2dx目錄下的 setup.py。
?
輸入ndk的路徑。
?
輸入sdk路徑
?
最后輸入的是 ant的路徑
?
OK,三個路徑都已經(jīng)配置完畢
?
?
五、打包Apk
然后就可以在項目目錄下使用 cocos compile -p android方式編譯APK文件了。
注意:在打包apk之前需要修改proj.android/jni文件夾下的Android.mk文件 添加自己新增的CPP文件,這里的新增指的是非cocos2dx生成的項目文件(自己新增的文件)。一定要把自己新增的文件或文件夾包含進apk。
首先我們拿官方的 cpp-tests項目來試手吧!
按住shift鍵+鼠標(biāo)右鍵 選擇在此處打開命令窗口。
?
?
然后就可以使用 cocos compile -p android --ap 20方式編譯APK文件了(--ap 20是指定android平臺)
?
漫長的等待吧,當(dāng)然這里要提醒一點3.1版本用的是 android-20,如果E:\Android\sdk\platforms目錄下沒有android-20 請創(chuàng)建一個空的。
?
等待完畢之后 看下這個文件夾下的 apk吧!可以安裝到手機上試一下了。
?
六、異常處理:(我會不定時的更新遇到的問題,讓大家都不走彎路)
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
如果你遇到這個問題,那么就要在
下創(chuàng)建一個空的android-20文件夾,這個問題坑了我很久!同時要查看命令是否是 –ap 20(雙-)。
檢查\proj.android目錄下的project.properties是否是android-20
?
?
2、? 編譯時,提示找不到gcc工具鏈 (Couldn't find the gcc toolchain)。
這個問題也煩了我很久!去檢查下ndk的配置路徑!NDK_ROOT是否正確!然后3.1版本需要的NDK是最新的版本,
去安卓網(wǎng)站http://developer.android.com/tools/sdk/ndk/index.html#Installing下一個最新的版本r9d吧!
3、? 如果遇到android api問題
?
找到運行進行更新,看缺哪個api就更新哪個,不過這個更新比較慢……原因google被禁……
4、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
5、Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8?
這是因為NDK指定的版本與minSdkVersion不一致的問題,修改AndroidManifest.xml文件 其中android:minSdkVersion修改為<uses-sdk android:minSdkVersion="20"/>
?
轉(zhuǎn)載于:https://www.cnblogs.com/Richard-Core/p/3855130.html
總結(jié)
以上是生活随笔為你收集整理的Cocos2d-x 3.2 学习笔记(四)学习打包Android平台APK!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python接口测试-项目实践(二)获取
- 下一篇: android sina oauth2.