Unity打包ARCore程式踩過的坑

2020-09-20 11:00:55

個人紀錄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不能正常使用。

  1. Android Studio中關閉代理,File->Settings->System Settings->Http Proxy,選擇No proxy,並找到使用者名稱/.gradle/gradle.properties,開啟確認沒有代理資訊,有就刪掉。
  2. Android Studio中設定新版本的gradle,File->Project Structure->Project ,選擇新的Gradle PluginGradle版本,二者有一定的對應關係,ARCore官網也對其版本有限制說明,個人選擇的Gradle Plugin 4.0.1和Gradle 6.6.1,Apply更新
  3. 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
  4. Unity中安卓打包時Player Settings->XR Settings中的ARCore Supported勾選
  5. Publishing Setings,勾選Custom Gradle Template,並去到指定目錄下,將com.android.tools.build:gradle:x.x.x改成安裝的Gradle Plugin版本號,不是Gradle版本號
  6. 以下都為Other Settings中,Company Name、Product Name 和 Package Name對應
  7. 關閉Auto Graphics API,只保留 OpenGLES3
  8. Minimum API Level選擇API24或者更高
  9. Target API Level選擇 Automatic,如果能檢測出來你安裝的版本也可以直接指定,個人選30
  10. Scripting Backend選擇IL2CPP,用於支援64位元安卓(ARCore從1.19開始必須要求64位元)
  11. Target Architectures,勾選ARM64,不需要ARMv7、x86

可選項

取消勾選Android TV Compatibility,選擇API Compatibility Level .net 4.x

喜歡用新的,那就多搗鼓,但還是希望少花點時間在環境上