Unity Editor は、特定のバージョンの Gradle にバージョン ロックされています。 以前のバージョンの Unity Editor では、最新バージョンの Google Mobile Ads との互換性がない以前のバージョンの Gradle が使用されています。
Android をビルドするには、使用する Unity Editor のバージョンを選択します。
2023.1 以上
Gradle ビルド プリプロセッサを有効にする
Unity Editor 2021.3.41f1 以降では、Gradle ビルド プリプロセッサがデフォルトで有効になっています。このプロセッサは、以前のバージョンの Unity Editor で最新の Google Mobile Ads SDK をサポートするために必要な Gradle とプレーヤーの設定をすべて自動的に適用します。
Android と Gradle の設定を手動で行う
カスタム 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 レベル 34 以上に設定します。

2021.3.41f1~2022.3
Gradle ビルド プリプロセッサを有効にする
Unity Editor 2021.3.41f1 以降では、Gradle ビルド プリプロセッサがデフォルトで有効になっています。このプロセッサは、以前のバージョンの Unity Editor で最新の Google Mobile Ads SDK をサポートするために必要な Gradle とプレーヤーの設定をすべて自動的に適用します。
Android と Gradle の設定を手動で行う
カスタム 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 レベル 34 以上に設定します。

`gradleTemplate.properties` に jetifier 無視リストを追加する
Assets/Plugins/Android/gradleTemplate.properties
を編集して、次の行を追加します。
android.jetifier.ignorelist=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>
2019.4 - 2021.3.37f1
前提条件
先に進む前に、次のことを確認してください。
- 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 レベル 34 以上に設定します。

Android Studio にエクスポートする
[File](MacOS の場合は [Unity Editor])> [Build Settings] を選択して、Android ビルド設定を変更し、[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
を更新する
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 の同期を実行し、プロジェクトを実行します。