Android-Kompatibilität des Unity-Editors

Der Unity-Editor ist auf eine bestimmte Version von Gradle festgelegt, was zu Konflikten mit Abhängigkeiten führen kann, die von neueren Android-Paketen wie Google Mobile Ads benötigt werden. In der folgenden Anleitung wird beschrieben, wie Sie mit früheren Versionen des Unity-Editors einen Android-Build erstellen.

In der folgenden Tabelle wird die maximal kompatible Google Mobile Ads-Plug-in-Version empfohlen, die Sie je nach Unity-Editor verwenden können.

Unity-Editor Empfohlene Version des Google Mobile Ads Unity-Plug-ins
2023.1 oder höher Neueste
2021.3.41f1 – 2022.3 9.1.0
2021.3.37f1 oder älter 8.5.3

Vorbereitung

Build-Einstellungen für 2022.3 und älter aktualisieren

Bei Unity 2022.3 und niedriger müssen Sie die Build-Einstellungen ändern, bevor Sie in Android Studio exportieren können.

baseProjectTemplate.gradle generieren

  1. Aktivieren Sie benutzerdefinierte Gradle-Vorlagen. Gehen Sie zu Projekteinstellungen > Player > Android > Einstellungen für die Veröffentlichung > Build und wählen Sie Benutzerdefinierte Basis-Gradle-Vorlage aus. Dadurch wird die Plugins/Android/baseProjectTemplate.gradle-Datei generiert.

  2. Ändern Sie die Datei Plugins/Android/baseProjectTemplate.gradle, damit Gradle-Tools der Version 8.1.1 oder höher verwendet werden.

    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
    }
    

Weitere Änderungen für Unity 2021.3.37f1 und niedriger

Für Unity 2021.3.37f1 und älter sind zusätzliche Änderungen erforderlich, um die Kompatibilität mit Gradle 8.1.1 zu verbessern. Gehen Sie folgendermaßen vor:

launcherTemplate.gradle generieren

  1. Gehen Sie zu Projekteinstellungen > Player > Android > Einstellungen für die Veröffentlichung > Build und wählen Sie Launcher Gradle-Vorlage aus. Dadurch wird die Plugins/Android/launcherTemplate.gradle-Datei generiert.

  2. Ändern Sie Plugins/Android/launcherTemplate.gradle so, dass das Namespaceattribut enthalten ist. Der Wert des Namespace-Attributs muss mit dem Paketattribut in der AndroidManifest.xml-Datei des Launcher-Moduls übereinstimmen.

    android {
        // TODO: Replace with your app's package name.
        namespace 'com.google.android.gms.example'
    }
    

mainTemplate.gradle generieren

  1. Gehen Sie zu Projekteinstellungen > Player > Android > Einstellungen für die Veröffentlichung > Build und wählen Sie Main Gradle Template aus. Dadurch wird die Plugins/Android/mainTemplate.gradle-Datei generiert.

.

  1. Ändern Sie Plugins/Android/mainTemplate.gradle so, dass es das Namespaceattribut mit dem Wert com.unity3d.player enthält.

    android {
        namespace 'com.unity3d.player'
    }
    

In Android Studio exportieren

  1. Ändern Sie die Android-Build-Einstellungen, um das Unity-Projekt zu exportieren.

  2. Wenn Sie nach Android Studio exportieren möchten, ändern Sie die Android-Build-Einstellungen. Wählen Sie Datei (oder Unity Editor unter macOS) > Build-Einstellungen aus und setzen Sie ein Häkchen bei Projekt exportieren:

  3. Klicken Sie unten im Dialogfeld „Build-Einstellungen“ auf die Schaltfläche Exportieren. Unity generiert ein Android-Projekt am ausgewählten Speicherort.

  4. Öffnen Sie das exportierte Projekt in Android Studio.

Gradle-JDK-Konfiguration auf JDK 17 aktualisieren

  1. Öffnen Sie in Android Studio die Gradle-Einstellungen über Datei (oder Android Studio unter macOS) > Einstellungen > Build, Ausführung, Bereitstellung > Build-Tools > Gradle.
  2. Suchen Sie das Drop-down-Menü Gradle JDK. Ändern Sie das Gradle-JDK, damit JDK 17 verwendet wird.

    Wenn JDK 17 nicht installiert ist, wählen Sie im Drop-down-Menü „Gradle JDK“ die Option JDK herunterladen aus und laden Sie eine kompatible Version herunter. Wir empfehlen den Anbieter der JetBrains-Laufzeit mit arch64-Unterstützung, da diese mit der von Android Studio bereitgestellten übereinstimmt.

Gradle-Wrapper-Dateien aktualisieren

Ändern Sie den Parameter „distributionUrl“ in gradle/wrapper/gradle-wrapper.properties, um Gradle 8.0.1 oder höher zu verwenden.

   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

Weitere Android Studio-Änderungen für Unity 2021.3.37f1 und niedriger

Für Unity 2021.3.37f1 und älter sind zusätzliche Änderungen erforderlich, um die Kompatibilität auf Gradle 8.1.1 zu aktualisieren. Gehen Sie folgendermaßen vor:

  1. Ändern Sie das gradle.properties-Attribut und entfernen Sie das android.enableR8=false-Attribut.

  2. Ändern Sie unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle und fügen Sie ein Namespaceattribut mit dem Wert "com.google.unity.ads" hinzu:

    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-Projekt ausführen

Nach Abschluss dieser Schritte ist die Unity-Anwendung einsatzbereit. Führen Sie in Android Studio Gradle-Synchronisierung und das Projekt aus.