起因:最近要在googleplay上架新游戲,而谷歌要求新上架的應用要支持64位,鑒於老版本的unity不支持打包64位apk,所以決定升級unity版本到2018.4.1,
但打包過程中出現了幾個問題 ->
問題1
Gradle version 配置錯誤,報錯信息如下:
CommandInvokationFailure: Gradle build failed.
D:\Program Files\unity2018.4.17\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "D:\Program Files\unity2018.4.17\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[
FAILURE: Build failed with an exception.
* Where:
Build file 'C:\w_\_upgrade2018\CashBonanza_EN\Temp\gradleOut\build.gradle' line: 21
* What went wrong:
A problem occurred evaluating root project 'gradleOut'.
> Failed to apply plugin [id 'com.android.application']
> Gradle version 2.10 is required. Current version is 5.1.1. If using the gradle wrapper, try editing the distributionUrl in C:\w_\_upgrade2018\CashBonanza_EN\Temp\gradleOut\gradle\wrapper\gradle-wrapper.properties to gradle-2.10-all.zip
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
由信息可知:
當前Unity2018.4.1 中的Gradle version 是 5.1.1 而我的打包要求卻是2.10,如此定位應該是配置不一致問題,查之果然:
因為我在unity 5.5.6也是用gradle方式打包,新游戲延用了舊游戲的部分配置,所以mainTemplate也被拷貝了過來,如圖:
查看Unity2018.4.1安裝目錄下的mainTemplate中的配置,路徑:unity2018.4.17安裝目錄\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates\mainTemplate.gradle,如圖:
如此,解決的辦法就是把unity2018.4.17安裝目錄\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\GradleTemplates\mainTemplate.gradle文件拷貝到Unity/Assets/Plugins/Android路徑下替換舊配置,
由此,問題1解決
問題2
安卓打包方法超過64k的問題,這個還是在mainTemplate.gradle配置中調整,加上multiDexEnabled true屬性即可,如圖:
由此,問題2解決
最后,64位apk打包成功