我是直接在網(wǎng)上購買了付費(fèi)課了赵,在老師的指導(dǎo)下直接學(xué)習(xí)Unity集成arr包的過程讲坎。課程連接如下——
https://ke.qq.com/course/376543
這位老師講解得蠻詳細(xì)的眉抬,而且課程從安裝Studio遭顶、平臺(tái)申請(qǐng)喇聊、集成arr、Unity工程一直到部署服務(wù)器务豺,都講了一遍磨总,干貨滿滿!
雖然如此笼沥,但是跟著老師操作一遍蚪燕,在最后Unity里打包APK時(shí)還是遇到了很多報(bào)錯(cuò)。作為安卓小白奔浅,我硬著頭皮馆纳,用了整整一天時(shí)間,網(wǎng)上各種搜索汹桦,好不容易解決了這些問題鲁驶。
這里記錄一下我的處理過程,以方便后來者舞骆。另外钥弯,作為習(xí)慣微軟VS的開發(fā)者,不得不吐糟一句葛作,Android Studio和Xcode這兩個(gè)開發(fā)工具真不是人用的寿羞。。赂蠢。造這兩個(gè)輪子的人绪穆,我覺得水平很不如巨硬。
Unity版本號(hào):2018.2.18 f1
Android Studio版本號(hào):3.5.2
Scripting Backend我用過的是IL2CPP虱岂,這年頭誰還用Mono~
PS:由于微信SDK已經(jīng)更新玖院,另附本地接入wechat-sdk-android-6.8.0.aar的最新方法更新。
報(bào)錯(cuò)1:
UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
? at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x00242] in D:\unity\Editor\Mono\BuildPlayerWindowBuildMethods.cs:194
? at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x0007f] in D:\unity\Editor\Mono\BuildPlayerWindowBuildMethods.cs:97
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
一個(gè)奇怪的問題第岖,因?yàn)樵谖抑按虬鼤r(shí)沒有出現(xiàn)過难菌。把打包的Build System改為Gradle后就沒有這個(gè)報(bào)錯(cuò)了。但我之前使用Internal打包的時(shí)候并沒有這個(gè)報(bào)錯(cuò)~
報(bào)錯(cuò)2:
CommandInvokationFailure: Gradle build failed.
C:\Program Files\Java\jdk1.8.0_112\bin\java.exe -classpath "D:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.2.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"
stderr[Temp\gradleOut\src\main\AndroidManifest.xml:10:205-236 Error:
????Attribute application@icon value=(@mipmap/app_icon) from AndroidManifest.xml:10:205-236
????is also present at [:app-debug:] AndroidManifest.xml:19:9-42 value=(@drawable/app_icon).
????Suggestion: add 'tools:replace="android:icon"' to <application> element at AndroidManifest.xml:10:3-23:17 to override.
這個(gè)是因?yàn)镻lugins文件夾下的AndroidManifest.xml和arr包里的AndroidManifest.xml有沖突蔑滓,更正方法是在Plugins文件夾下的AndroidManifest.xml中添加兩行——
xmlns:tools="http://schemas.android.com/tools"
?tools:replace="android:icon, android:theme"
添加位置見下圖——
報(bào)錯(cuò)3:
attr/colorPrimary)' not found.
attr/colorPrimaryDark)' not found.
attr/colorAccent)' not found.
因?yàn)閷?duì)安卓不熟郊酒,我沒有特別好的解決辦法,直接把a(bǔ)rr里res/values/values.xml里的變量全部刪掉键袱,就留表頭和表尾——
報(bào)錯(cuò)4:
.gradle\caches\transforms-1\files-1.1\app-debug.aar\\res\layout\activity_main.xml:9: AAPT: error: attribute layout_constraintBottom_toBottomOf (aka :layout_constraintBottom_toBottomOf) not found.
也是用壓縮軟件修改arr包燎窘,把a(bǔ)rr/res/layout/activity_main.xml里把res-auto自適應(yīng)修改為自己工程的包名——
報(bào)錯(cuò)5:
Dex: Error converting bytecode to dex:
使用Internal打包時(shí),是這么報(bào)錯(cuò)的——
CommandInvokationFailure……
Error:Invalid command dx
exit code: 64
UnityEditor.Android.Command.WaitForProgramToRun……
這個(gè)屬于Unity官方對(duì)SDK的支持BUG蹄咖。我是把Unity升級(jí)為2018.4.10 f1后就沒有這個(gè)問題了褐健。
Unity歷史版本下載地址——
里面有更新日志,說這個(gè)BUG在后期被修復(fù)了