Unity für Android erstellen

Der Unity-Editor ist auf eine bestimmte Version von Gradle festgelegt. In älteren Versionen des Unity-Editors werden ältere Versionen von Gradle verwendet, die nicht mit der neuesten Version von Google Mobile Ads kompatibel sind.

In der folgenden Tabelle sehen Sie die maximale kompatible Version des Google Mobile Ads-Plug-ins, die Sie je nach Unity-Editor verwenden können:

Unity-Editor 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

Sie können Gradle manuell aktualisieren, um das neueste Google Mobile Ads Unity-Plug-in zu verwenden. Das funktioniert auch mit älteren Unity-Editoren. Wählen Sie zum Erstellen von Android-Apps die gewünschte Unity-Editor-Version aus:

2023.1 oder höher

Vorbereitung

Bevor Sie fortfahren, benötigen Sie Folgendes:

Benutzerdefinierte Gradle-Vorlagen aktivieren

Gehe zu Projekteinstellungen > Player > Android > Veröffentlichungseinstellungen > Build und aktiviere Custom Main Gradle Template und Custom Gradle Properties Template.

Benutzerdefinierte Gradle-Vorlagen aktivieren

Ziel-API-Level 34 festlegen

Öffne im Hauptmenü Bearbeiten > Projekteinstellungen > Player > Android > Sonstige Einstellungen und lege die Ziel-API-Ebene auf API-Ebene 34 oder höher fest.

Ziel-API-Level festlegen

Android-Projekt ausführen

Führen Sie in Android Studio Gradle-Synchronisierung und das Projekt aus.

2021.3.4f1 – 2022.3

Vorbereitung

Bevor Sie fortfahren, benötigen Sie Folgendes:

  • Laden Sie die neueste stabile Version von Android Studio herunter und installieren Sie sie.

Benutzerdefinierte Gradle-Vorlagen aktivieren

Gehe zu Projekteinstellungen > Player > Android > Veröffentlichungseinstellungen > Build und aktiviere Custom Main Gradle Template und Custom Gradle Properties Template.

Benutzerdefinierte Gradle-Vorlagen aktivieren

Ziel-API-Level 34 festlegen

Öffne im Hauptmenü Bearbeiten > Projekteinstellungen > Player > Android > Sonstige Einstellungen und lege die Ziel-API-Ebene auf API-Ebene 34 oder höher fest.

Ziel-API-Level festlegen

In Android Studio exportieren

Ändern Sie die Android-Build-Einstellungen, indem Sie File (oder Unity Editor auf MacOS) > Build Settings auswählen und „Export Project“ aktivieren:

Projekt exportieren

Öffnen Sie Android Studio.

Dieser Abschnitt enthält Schritte, die in Android Studio ausgeführt werden.

Gradle-JDK-Konfiguration aktualisieren

Öffnen Sie die Gradle-Einstellungen unter Datei (oder Android Studio unter macOS) > Einstellungen > Build > Ausführung > Bereitstellung > Build-Tools > Gradle. Wählen Sie im Drop-down-Menü Gradle JDK die Option „JDK 17 oder höher“ aus.

Gradle-JDK-Konfiguration aktualisieren

Wenn Sie JDK 17 nicht installiert haben, wählen Sie in der Gradle-JDK-Menüleiste die Option JDK herunterladen aus und laden Sie eine kompatible Version herunter. Wir empfehlen den Anbieter der JetBrains-Laufzeit mit aarch64-Unterstützung, da diese mit der von Android Studio bereitgestellten übereinstimmt.

build.gradle auf Projektebene aktualisieren

Legen Sie die Version der Gradle-Tools auf 8.1.1 oder höher fest.


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 aktualisieren

Legen Sie für distributionUrl Gradle 8.1.1 oder höher fest.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Android-Projekt ausführen

Führen Sie in Android Studio Gradle-Synchronisierung und das Projekt aus.

2021.3.37f1 – 2019.4

Vorbereitung

Bevor Sie fortfahren, benötigen Sie Folgendes:

  • Laden Sie die neueste stabile Version von Android Studio herunter und installieren Sie sie.

Benutzerdefinierte Gradle-Vorlagen aktivieren

Gehe zu Projekteinstellungen > Player > Android > Veröffentlichungseinstellungen > Build und aktiviere Custom Main Gradle Template und Custom Gradle Properties Template.

Benutzerdefinierte Gradle-Vorlagen aktivieren

Ziel-API-Level 34 festlegen

Öffne im Hauptmenü Bearbeiten > Projekteinstellungen > Player > Android > Sonstige Einstellungen und lege die Ziel-API-Ebene auf API-Ebene 34 oder höher fest.

Ziel-API-Level festlegen

In Android Studio exportieren

Ändern Sie die Android-Build-Einstellungen, indem Sie File (oder Unity Editor auf MacOS) > Build Settings auswählen und „Export Project“ aktivieren:

Projekt exportieren

Wenn Sie eine Warnung erhalten, dass die API-Ebene 34 der Android SDK-Plattform fehlt, wählen Sie die Option Android SDK aktualisieren aus.

Öffnen Sie Android Studio.

Dieser Abschnitt enthält Schritte, die in Android Studio ausgeführt werden.

Gradle-JDK-Konfiguration aktualisieren

Öffnen Sie die Gradle-Einstellungen unter Datei (oder Android Studio unter macOS) > Einstellungen > Build > Ausführung > Bereitstellung > Build-Tools > Gradle. Wählen Sie im Drop-down-Menü Gradle JDK die Option „JDK 17 oder höher“ aus.

Gradle-JDK-Konfiguration aktualisieren

Wenn Sie JDK 17 nicht installiert haben, wählen Sie in der Gradle-JDK-Menüleiste die Option JDK herunterladen aus und laden Sie eine kompatible Version herunter. Wir empfehlen den Anbieter der JetBrains-Laufzeit mit aarch64-Unterstützung, da diese mit der von Android Studio bereitgestellten übereinstimmt.

build.gradle auf Projektebene aktualisieren

Legen Sie die Version der Gradle-Tools auf 8.1.1 oder höher fest.


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 aktualisieren

Legen Sie für distributionUrl Gradle 8.1.1 oder höher fest.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

launcher/build.gradle aktualisieren

  • Legen Sie das Attribut namespace mit dem Wert des Attributs package aus launcher/AndroidManifest.xml fest.
  • Legen Sie für sourceCompatibility und targetCompatibility „Java 17“ fest.

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 auf Projektebene aktualisieren

Legen Sie die Abschnitte pluginManagement und dependencyResolutionManagement fest.


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 aktualisieren

  • namespace auf den Wert "com.unity3d.player" setzen
  • Setzen Sie sourceCompatibility und targetCompatibility auf 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 aktualisieren

Legen Sie das Attribut namespace auf den Wert "com.google.unity.ads" fest.


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 34
    buildToolsVersion '30.0.2'
    defaultConfig {
        targetSdkVersion 31
    }

    lintOptions {
        abortOnError false
    }
}

Android-Projekt ausführen

Führen Sie in Android Studio Gradle-Synchronisierung und das Projekt aus.