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 レベル)を 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 レベル)を 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 レベル)を 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 の同期を実行し、プロジェクトを実行します。