Unity エディタの Android 互換性

Unity Editor は特定のバージョンの Gradle にバージョンロックされているため、Google Mobile Ads などの新しい Android パッケージで必要な依存関係と競合する可能性があります。次のガイドでは、以前のバージョンの Unity エディタで Android ビルドを作成する方法について説明します。

次の表に、Unity Editor に基づいて使用できる Google モバイル広告プラグインの最大互換バージョンを示します。

Unity エディタ 推奨される Google Mobile Ads 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. Gradle ツールのバージョン 8.1.1 以降を使用するように Plugins/Android/baseProjectTemplate.gradle ファイルを変更します。

    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 以前のその他の変更

Unity 2021.3.37f1 以前では、互換性を Gradle 8.1.1 にアップグレードするために追加の変更が必要です。次の手順を行います。

launcherTemplate.gradle を生成する

  1. [Project Settings] > [Player] > [Android] > [Publishing Settings] > [Build] に移動し、[Launcher Gradle Template] を選択します。これにより、Plugins/Android/launcherTemplate.gradle ファイルが生成されます。

  2. Plugins/Android/launcherTemplate.gradle を変更して、Namespace 属性を含めます。namespace 属性の値は、ランチャー モジュールの 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. com.unity3d.player の Namespace 属性を含むように Plugins/Android/mainTemplate.gradle を変更します。

    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 で開きます。

JDK 17 を使用するように Gradle JDK 構成を更新する

  1. Android Studio を使用して、[File](macOS では [Android Studio])> [Settings] > [Build, Execution, Deployment] > [Build Tools] > [Gradle] で Gradle 設定を開きます。
  2. [Gradle JDK] プルダウンを見つけます。JDK 17 を使用するように Gradle JDK を変更します。

    JDK 17 がインストールされていない場合は、Gradle JDK プルダウン メニューから [Download JDK] オプションを選択し、互換性のあるバージョンをダウンロードします。Android Studio が配布するものと一致するように、arch64 をサポートする JetBrains ランタイム ベンダーを使用することをおすすめします。

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 のその他の変更

Unity 2021.3.37f1 以前では、Gradle 8.1.1 との互換性をアップグレードするために追加の変更が必要です。次の手順を行います。

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