Der Unity Editor ist auf eine bestimmte Version von Gradle festgelegt. Ältere Versionen des Unity Editors verwenden ältere Versionen von Gradle, die mit der neuesten Version von Google Mobile Ads inkompatibel sind.
Wählen Sie zum Erstellen von Android die gewünschte Unity Editor-Version aus:
2023.1 oder höher
Gradle-Build-Vorprozessor aktivieren
Der Gradle-Build-Vorprozessor ist in Unity Editor 2021.3.41f1 und höher standardmäßig aktiviert. Der Prozessor wendet automatisch alle erforderlichen Gradle- und Player-Einstellungen an, um das neueste Google Mobile Ads Unity Plugin in älteren Versionen des Unity Editors zu unterstützen.
Android- und Gradle-Einstellungen manuell konfigurieren
Benutzerdefinierte Gradle-Vorlagen aktivieren
Gehen Sie zu Projekteinstellungen > Player > Android > Veröffentlichungseinstellungen > Build
und aktivieren Sie Custom Main Gradle Template und Custom Gradle Properties Template.
Ziel-API-Level festlegen
Öffnen Sie im Hauptmenü Bearbeiten > Projekteinstellungen > Player > Android > Sonstige Einstellungen und legen Sie das Ziel-API-Level auf API-Level 23 oder höher fest.
2021.3.41f1 – 2022.3
Gradle-Build-Vorprozessor aktivieren
Der Gradle-Build-Vorprozessor ist in Unity Editor 2021.3.41f1 und höher standardmäßig aktiviert. Der Prozessor wendet automatisch alle erforderlichen Gradle- und Player-Einstellungen an, um das neueste Google Mobile Ads Unity Plugin in älteren Versionen des Unity Editors zu unterstützen.
Android- und Gradle-Einstellungen manuell konfigurieren
Benutzerdefinierte Gradle-Vorlagen aktivieren
Gehen Sie zu Projekteinstellungen > Player > Android > Veröffentlichungseinstellungen > Build
und aktivieren Sie Custom Main Gradle Template und Custom Gradle Properties Template.
Ziel-API-Level festlegen
Öffnen Sie im Hauptmenü Bearbeiten > Projekteinstellungen > Player > Android > Sonstige Einstellungen und legen Sie das Ziel-API-Level auf API-Level 23 oder höher fest.
Jetifier-Ignorierliste zu `gradleTemplate.properties` hinzufügen
Bearbeiten Sie Assets/Plugins/Android/gradleTemplate.properties und fügen Sie die folgende Zeile hinzu:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
`minSDKVersion` aus `AndroidManifest.xml` entfernen
Bearbeiten Sie Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml und entfernen Sie android:minSdkVersion="21" aus dem Knoten uses-sdk .
AndroidManifest.xml sollte so aussehen:
<?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
Vorbereitung
Bevor Sie fortfahren, müssen Sie Folgendes tun:
- Laden Sie die neueste stabile Version von Android Studio herunter und installieren Sie sie.
- Optional: Weitere Informationen zum Erstellen für Android finden Sie unter Java-Versionen in Android-Builds
Benutzerdefinierte Gradle-Vorlagen aktivieren
Gehen Sie zu Projekteinstellungen > Player > Android > Veröffentlichungseinstellungen > Build
und aktivieren Sie Custom Main Gradle Template und Custom Gradle Properties Template.
Ziel-API-Level festlegen
Öffnen Sie im Hauptmenü Bearbeiten > Projekteinstellungen > Player > Android > Sonstige Einstellungen und legen Sie das Ziel-API-Level auf API-Level 35 oder höher fest.
In Android Studio exportieren
Ändern Sie die Android-Build-Einstellungen, indem Sie Datei (oder Unity Editor unter macOS) > Build-Einstellungen auswählen und das Kästchen „Projekt exportieren“ anklicken:
Wenn Sie eine Warnung erhalten, dass das Android SDK-Plattform-API Level 35 fehlt, wählen Sie die Option Android SDK aktualisieren aus.
Android Studio öffnen
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. Suchen Sie das Drop-down-Menü Gradle JDK und legen Sie das Gradle JDK so fest, dass JDK 17 oder höher verwendet wird.
Wenn Sie JDK 17 nicht installiert haben, wählen Sie in der Menüleiste von Gradle JDK die Option JDK herunterladen aus und laden Sie eine kompatible Version herunter. Wir empfehlen den JetBrains-Laufzeit-Anbieter mit aarch64-Unterstützung, um mit der von Android Studio verteilten Version übereinzustimmen.
build.gradle auf Projektebene aktualisieren
Legen Sie die Gradle-Tools-Version 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 distributionUrl so fest, dass Gradle 8.1.1 oder höher verwendet wird.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
launcher/build.gradle aktualisieren
- Legen Sie das Attribut
namespacemit dem Wert des Attributspackageauslauncher/AndroidManifest.xmlfest. - Legen Sie
sourceCompatibilityundtargetCompatibilityauf 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
- Legen Sie
namespacemit dem Wert"com.unity3d.player"fest. - Legen Sie
sourceCompatibilityundtargetCompatibilityaufJavaVersion.VERSION_17fest.
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 35 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 mit dem Wert "com.google.unity.ads" fest.
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-Projekt ausführen
Führen Sie in Android Studio die Gradle-Synchronisierung aus und führen Sie das Projekt aus.