個人紀錄Unity打包ARCore程式踩過的坑
首先一定要掛梯子,因為新的ARCore要求高版本的gradle,Unity裡面的gradle版本可能過低(個人使用2019 LTS版時,ARCore的SDK部分程式碼會有棄用報錯,所以實際成功打包的版本是2018.4.27f1LTS版本的,低版本的Unity不支援設定gradle路徑),阿里雲映象、代理等方法不推薦,個人使用時一直有不能get的報錯。
個人對倉庫也不是很瞭解,推測是因為Unity對gradle包命名的方式在阿里的倉庫中不能正確檢索
幾個關鍵點
除了掛梯子,還要安裝Android Studio,在SDK Manager中安裝較高版本的Android SDK(個人安裝了API29和30),官網推薦最低API24,但是個人試驗1.18版ARCore不能正常使用。
- Android Studio中關閉代理,File->Settings->System Settings->Http Proxy,選擇No proxy,並找到使用者名稱/.gradle/gradle.properties,開啟確認沒有代理資訊,有就刪掉。
- Android Studio中設定新版本的gradle,File->Project Structure->Project ,選擇新的Gradle Plugin和Gradle版本,二者有一定的對應關係,ARCore官網也對其版本有限制說明,個人選擇的Gradle Plugin 4.0.1和Gradle 6.6.1,Apply更新
- Unity中 Edit->Preferences中,安卓SDK目錄、JDK目錄、NDK目錄正確設定(Android Studio中可以安裝安卓SDK和JDK,自帶JDK,需要自行設定),取消勾選Gradle Installed With Unity,Android Studio安裝的Gradle目錄在使用者名稱.gradle\wrapper\dists\gradle.x.x.x-all\亂碼\gradle.x.x.x,個人為例是.gradle\wrapper\dists\gradle-6.6.1-all\ejrtlte9hlw8v6ii20a9584rs\gradle-6.6.1
- Unity中安卓打包時Player Settings->XR Settings中的ARCore Supported勾選
- Publishing Setings,勾選Custom Gradle Template,並去到指定目錄下,將com.android.tools.build:gradle:x.x.x改成安裝的Gradle Plugin版本號,不是Gradle版本號
- 以下都為Other Settings中,Company Name、Product Name 和 Package Name對應
- 關閉Auto Graphics API,只保留 OpenGLES3
- Minimum API Level選擇API24或者更高
- Target API Level選擇 Automatic,如果能檢測出來你安裝的版本也可以直接指定,個人選30
- Scripting Backend選擇IL2CPP,用於支援64位元安卓(ARCore從1.19開始必須要求64位元)
- Target Architectures,勾選ARM64,不需要ARMv7、x86
可選項
取消勾選Android TV Compatibility,選擇API Compatibility Level .net 4.x
喜歡用新的,那就多搗鼓,但還是希望少花點時間在環境上