Unity 編輯器的版本會鎖定為特定版本的 Gradle,這可能與較新 Android 套件 (例如 Google 行動廣告) 所需的依附元件發生衝突。以下指南將說明如何在舊版 Unity 編輯器中產生 Android 版本。
下表根據 Unity 編輯器,推薦您使用的最高相容 Google 行動廣告外掛程式版本。
Unity 編輯器 | 建議使用的 Google 行動廣告 Unity 外掛程式版本 |
---|---|
2023.1 以上版本 | 最新 |
2021.3.41f1 - 2022.3 | 9.1.0 |
2021.3.37f1 以下版本 | 8.5.3 |
必要條件
- 下載並安裝最新的 Android Studio 穩定版。
- 如要進一步瞭解如何為 Android 建構應用程式,請參閱「Android 建構作業中的 Java 版本」。
更新 2022.3 以下版本的建構設定
在將 Unity 2022.3 及更早版本匯出至 Android Studio 前,必須變更建構設定。
產生 baseProjectTemplate.gradle
啟用自訂 Gradle 範本。依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後選取「Custom Base Gradle Template」。這會產生
Plugins/Android/baseProjectTemplate.gradle
檔案。修改
Plugins/Android/baseProjectTemplate.gradle
檔案,以便使用 Gradle 工具 8.1.1 以上版本。plugins { id 'com.android.application' version '8.1.1' apply false id 'com.android.library' version '8.1.1' apply false } task clean(type: Delete) { delete rootProject.buildDir }
Unity 2021.3.37f1 以下版本的其他異動
如要將相容性升級至 Gradle 8.1.1,Unity 2021.3.37f1 以下版本需要進行額外變更。操作步驟如下:
產生 launcherTemplate.gradle
依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後選取「Launcher Gradle Template」。這會產生
Plugins/Android/launcherTemplate.gradle
檔案。修改
Plugins/Android/launcherTemplate.gradle
以加入命名空間屬性。命名空間屬性值應與啟動器模組AndroidManifest.xml
檔案中的套件屬性相符。android { // TODO: Replace with your app's package name. namespace 'com.google.android.gms.example' }
產生 mainTemplate.gradle
- 依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後選取「Main Gradle Template」。這會產生
Plugins/Android/mainTemplate.gradle
檔案。
。
修改
Plugins/Android/mainTemplate.gradle
,加入值為com.unity3d.player
的命名空間屬性。android { namespace 'com.unity3d.player' }
匯出至 Android Studio
修改 Android 建構設定,匯出 Unity 專案。
如要匯出至 Android Studio,請修改 Android 建構設定。依序選取「File」 (或 macOS 上的「Unity Editor」) >「Build Settings」,然後勾選「Export Project」:
按下「Build Settings」對話方塊底部的「Export」按鈕。Unity 會在所選位置產生 Android 專案。
在 Android Studio 中開啟匯出的專案。
更新 Gradle JDK 設定,以便使用 JDK 17
- 使用 Android Studio,依序選取「File」(或 macOS 上的「Android Studio」)>「Settings」>「Build, Execution, Deployment」>「Build Tools」>「Gradle」,開啟 Gradle 設定。
找出「Gradle JDK」下拉式選單。修改 Gradle JDK 以使用 JDK 17。
如果您尚未安裝 JDK 17,請從 Gradle JDK 下拉式選單中選取「Download JDK」選項,然後下載相容的版本。建議您使用支援
arch64
的 JetBrains 執行階段供應商,以便與 Android Studio 發布的版本相符。
更新 Gradle 包裝函式檔案
修改 gradle/wrapper/gradle-wrapper.properties
中的 distributionUrl 參數,以便使用 Gradle 8.0.1 以上版本。
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip
Unity 2021.3.37f1 以下版本的其他 Android Studio 變更
如要將相容性升級至 Gradle 8.1.1,Unity 2021.3.37f1 以下版本需要進行額外變更。操作步驟如下:
修改
gradle.properties
並移除android.enableR8=false
屬性。修改
unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle
,並新增值為"com.google.unity.ads"
的命名空間屬性:apply plugin: 'android-library' dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar']) } android { namespace "com.google.unity.ads" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' //java.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] } } compileSdkVersion 35 buildToolsVersion '30.0.3' defaultConfig { targetSdkVersion 31 } lintOptions { abortOnError false } }
執行 Android 專案
完成這些步驟後,Unity 應用程式就會準備就緒。在 Android Studio 中執行 Gradle 同步,然後執行專案。