Unity 編輯器 Android 相容性

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

必要條件

更新 2022.3 以下版本的建構設定

在將 Unity 2022.3 及更早版本匯出至 Android Studio 前,必須變更建構設定。

產生 baseProjectTemplate.gradle

  1. 啟用自訂 Gradle 範本。依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後選取「Custom Base Gradle Template」。這會產生 Plugins/Android/baseProjectTemplate.gradle 檔案。

  2. 修改 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

  1. 依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後選取「Launcher Gradle Template」。這會產生 Plugins/Android/launcherTemplate.gradle 檔案。

  2. 修改 Plugins/Android/launcherTemplate.gradle 以加入命名空間屬性。命名空間屬性值應與啟動器模組 AndroidManifest.xml 檔案中的套件屬性相符。

    android {
        // TODO: Replace with your app's package name.
        namespace 'com.google.android.gms.example'
    }
    

產生 mainTemplate.gradle

  1. 依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後選取「Main Gradle Template」。這會產生 Plugins/Android/mainTemplate.gradle 檔案。

  1. 修改 Plugins/Android/mainTemplate.gradle,加入值為 com.unity3d.player 的命名空間屬性。

    android {
        namespace 'com.unity3d.player'
    }
    

匯出至 Android Studio

  1. 修改 Android 建構設定,匯出 Unity 專案。

  2. 如要匯出至 Android Studio,請修改 Android 建構設定。依序選取「File」 (或 macOS 上的「Unity Editor」) >「Build Settings」,然後勾選「Export Project」

  3. 按下「Build Settings」對話方塊底部的「Export」按鈕。Unity 會在所選位置產生 Android 專案。

  4. 在 Android Studio 中開啟匯出的專案。

更新 Gradle JDK 設定,以便使用 JDK 17

  1. 使用 Android Studio,依序選取「File」(或 macOS 上的「Android Studio」)>「Settings」>「Build, Execution, Deployment」>「Build Tools」>「Gradle」,開啟 Gradle 設定。
  2. 找出「Gradle JDK」下拉式選單。修改 Gradle JDK 以使用 JDK 17

    如果您尚未安裝 JDK 17,請從 Gradle JDK 下拉式選單中選取「Download JDK」選項,然後下載相容的版本。建議您使用支援 arch64JetBrains 執行階段供應商,以便與 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 以下版本需要進行額外變更。操作步驟如下:

  1. 修改 gradle.properties 並移除 android.enableR8=false 屬性。

  2. 修改 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 同步,然後執行專案