Unity 編輯器只能與對應版本的 Gradle 搭配使用。舊版 Unity 編輯器使用的 Gradle 版本較舊,無法與最新版 Google Mobile Ads 相容。
下表列出 Unity 編輯器可相容的 Google Mobile Ads 外掛程式最高版本:
Unity 編輯器 | Google Mobile Ads Unity 外掛程式版本 |
---|---|
2023.1 以上版本 | 最新 |
2021.3.41f1 - 2022.3 | 9.1.0 |
2021.3.37f1 以下版本 | 8.5.3 |
即使 Unity 編輯器版本較舊,只要手動更新 Gradle,即可使用最新版 Google Mobile Ads Unity 外掛程式。如要建構 Android 應用程式,請選擇偏好的 Unity 編輯器版本:
2023.1 以上版本
啟用自訂 Gradle 範本
依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後啟用 Custom Main Gradle Template
和 Custom Gradle Properties Template
。

設定目標 API 級別 34
從主選單依序開啟「Edit」>「Project Settings」>「Player」>「Android」>「Other Settings」,然後將「Target API Level」設為「API Level 34」或更高級別。

2021.3.41f1 - 2022.3
啟用自訂 Gradle 範本
依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後啟用 Custom Main Gradle Template
和 Custom Gradle Properties Template
。

設定目標 API 級別 34
從主選單依序開啟「Edit」>「Project Settings」>「Player」>「Android」>「Other Settings」,然後將「Target API Level」設為「API Level 34」或更高級別。

將 Jetifier 黑名單新增至「gradleTemplate.properties」
編輯 Assets/Plugins/Android/gradleTemplate.properties
並加入這行程式碼:
android.jetifier.blacklist=annotation-experimental-1.4.0.aar
從「AndroidManifest.xml」中移除「minSDKVersion」
編輯 Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml
,並從 uses-sdk
節點移除 android:minSdkVersion="21"
。
AndroidManifest.xml
應如下所示:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.unity.ads" android:versionName="1.0" android:versionCode="1"> <uses-sdk /> <application> <uses-library android:required="false" android:name="org.apache.http.legacy"/> </application> </manifest>
2021.3.37f1 - 2019.4
必備條件
請務必先完成以下事項,再繼續操作:
- 下載並安裝最新穩定版的 Android Studio。
- 選用:如要進一步瞭解如何建構 Android 應用程式,請參閱「Android 建構作業中的 Java 版本」
啟用自訂 Gradle 範本
依序前往「Project Settings」>「Player」>「Android」>「Publishing Settings」>「Build」,然後啟用 Custom Main Gradle Template
和 Custom Gradle Properties Template
。

設定目標 API 級別 34
從主選單依序開啟「Edit」>「Project Settings」>「Player」>「Android」>「Other Settings」,然後將「Target API Level」設為「API Level 34」或更高級別。

匯出至 Android Studio
如要修改 Android 建構作業設定,請依序選取「File」(在 macOS 上為「Unity Editor」) >「Build Settings」,然後勾選「Export Project」:

如果收到 Android SDK 平台缺少 API 級別 34 的警告,請選取「Update Android SDK」選項。
開啟 Android Studio
本節說明要在 Android Studio 中執行的步驟。
更新 Gradle JDK 設定
依序選取「File」(在 macOS 上為「Android Studio」) >「Settings」>「Build」>「Execution」>「Deployment」>「Build Tools」>「Gradle」,開啟 Gradle 設定。 找到「Gradle JDK」下拉式選單,將 Gradle JDK 設為使用 JDK 17 以上版本。

如果尚未安裝 JDK 17,請從 Gradle JDK 選單列選取「Download JDK」選項,然後下載相容的版本。為了與 Android Studio 發布的版本一致,建議選擇支援 aarch64 的 JetBrains 執行階段供應商。
更新專案層級 build.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 }
更新 /gradle/gradle-wrapper.properties
將 distributionUrl
設為使用 Gradle 8.1.1 以上版本。
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
更新 launcher/build.gradle
- 使用
launcher/AndroidManifest.xml
的package
屬性值,設定namespace
屬性 - 將
sourceCompatibility
和targetCompatibility
設為 Java 17
apply plugin: 'com.android.application' dependencies { implementation project(':unityLibrary') } android { namespace "com.google.android.gms.example" compileSdkVersion 35 buildToolsVersion '35.0.0' compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } defaultConfig { minSdkVersion 28 targetSdkVersion 35 applicationId 'com.google.android.gms.example' ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } versionCode 1 versionName '1.0' } aaptOptions { noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp'] ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~" } lintOptions { abortOnError false } buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.debug jniDebuggable true } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt') signingConfig signingConfigs.debug } } packagingOptions { doNotStrip '*/armeabi-v7a/*.so' doNotStrip '*/arm64-v8a/*.so' doNotStrip '*/x86/*.so' doNotStrip '*/x86_64/*.so' jniLibs { useLegacyPackaging true } } bundle { language { enableSplit = false } density { enableSplit = false } abi { enableSplit = true } } } apply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'
更新專案層級 settings.gradle
設定 pluginManagement
和 dependencyResolutionManagement
區段。
pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } include ':launcher', ':unityLibrary' include 'unityLibrary:GoogleMobileAdsPlugin.androidlib' dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { google() mavenCentral() flatDir { dirs "${project(':unityLibrary').projectDir}/libs" } } }
更新 unityLibrary/build.gradle
- 將
namespace
的值設為"com.unity3d.player"
- 將
sourceCompatibility
和targetCompatibility
設為JavaVersion.VERSION_17
apply plugin: 'com.android.library' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) // Android Resolver Dependencies Start implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'com.google.android.gms:play-services-ads:23.6.0' implementation 'com.google.android.ump:user-messaging-platform:3.1.0' // Android Resolver Dependencies End implementation(name: 'googlemobileads-unity', ext:'aar') implementation project('GoogleMobileAdsPlugin.androidlib') } // Android Resolver Exclusions Start android { packagingOptions { exclude ('/lib/armeabi/*' + '*') exclude ('/lib/mips/*' + '*') exclude ('/lib/mips64/*' + '*') exclude ('/lib/x86/*' + '*') } } // Android Resolver Exclusions End android { namespace "com.unity3d.player" compileSdkVersion 34 buildToolsVersion '30.0.2' compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } defaultConfig { minSdkVersion 28 targetSdkVersion 34 ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64' } versionCode 1 versionName '1.0' consumerProguardFiles 'proguard-unity.txt' } lintOptions { abortOnError false } aaptOptions { ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~" } packagingOptions { doNotStrip '*/armeabi-v7a/*.so' doNotStrip '*/arm64-v8a/*.so' doNotStrip '*/x86_64/*.so' } } apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle' gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }
更新 unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
將 namespace
屬性的值設為 "com.google.unity.ads"
。
apply plugin: 'android-library' dependencies { implementation fileTree(dir: 'bin', include: ['<em>.jar']) implementation fileTree(dir: 'libs', include: ['</em>.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 34 buildToolsVersion '30.0.2' defaultConfig { targetSdkVersion 31 } lintOptions { abortOnError false } }
執行 Android 專案
在 Android Studio 中執行 Gradle 同步處理,然後執行專案。