Unity Editor は、特定のバージョンの Gradle にバージョン ロックされています。旧バージョンの Unity Editor では、最新バージョンの Google Mobile Ads との互換性がない旧バージョンの Gradle が使用されています。
次の表は、Unity Editor のバージョンに応じて使用できる Google Mobile Ads プラグインの最大互換バージョンを示しています。
Unity Editor | Google Mobile Ads Unity プラグインのバージョン |
---|---|
2023.1 以上 | 最新 |
2021.3.41f1~2022.3 | 9.1.0 |
2021.3.37f1 以前 | 8.5.3 |
Gradle を手動で更新すると、古い Unity Editor でも最新の Google Mobile Ads Unity プラグインを使用できます。Android をビルドするには、使用する Unity Editor のバージョンを選択します。
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 レベル)を API レベル 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 レベル)を API レベル 34 以上に設定します。

`gradleTemplate.properties` に jetifier 拒否リストを追加する
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 レベル)を API レベル 34 以上に設定します。

Android Studio にエクスポートする
[File](ファイル)(MacOS の場合は [Unity Editor])> [Build Settings](ビルド設定)を選択して Android ビルド設定を変更し、[Export Project](プロジェクトをエクスポート)をオンにします。

Android SDK プラットフォーム API レベル 34 が見つからないという警告が表示された場合は、[Update Android SDK](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](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
を更新する
Gradle 8.1.1 以降を使用するように distributionUrl
を設定します。
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 の同期を実行し、プロジェクトを実行します。