Unity Editor è bloccato a una versione specifica di Gradle. Le versioni precedenti di Unity Editor utilizzano versioni precedenti di Gradle che non sono compatibili con l'ultima versione di Google Mobile Ads.
Per creare Android, seleziona la versione dell'editor Unity che preferisci:
2023.1 o versioni successive
Abilita il post-processore di build Gradle
Il post-processore di compilazione Gradle è abilitato per impostazione predefinita in Unity Editor 2021.3.41f1 e versioni successive. Il processore applica automaticamente tutte le impostazioni Gradle e del player necessarie per supportare l'ultima versione dell'SDK Google Mobile Ads nelle versioni precedenti di Unity Editor.
Configurare manualmente le impostazioni di Android e Gradle
Attivare i modelli Gradle personalizzati
Vai a Impostazioni progetto > Player > Android > Impostazioni di pubblicazione > Build
e attiva Custom Main Gradle Template
e Custom Gradle Properties Template
.

Imposta il livello API target 34
Dal menu principale, apri Modifica > Impostazioni progetto > Player > Android > Altre impostazioni e imposta Livello API di destinazione su Livello API 34 o superiore.

2021.3.41f1 - 2022.3
Abilita il post-processore di build Gradle
Il post-processore di compilazione Gradle è abilitato per impostazione predefinita in Unity Editor 2021.3.41f1 e versioni successive. Il processore applica automaticamente tutte le impostazioni Gradle e del player necessarie per supportare l'ultima versione dell'SDK Google Mobile Ads nelle versioni precedenti di Unity Editor.
Configurare manualmente le impostazioni di Android e Gradle
Attivare i modelli Gradle personalizzati
Vai a Impostazioni progetto > Player > Android > Impostazioni di pubblicazione > Build
e attiva Custom Main Gradle Template
e Custom Gradle Properties Template
.

Imposta il livello API target 34
Dal menu principale, apri Modifica > Impostazioni progetto > Player > Android > Altre impostazioni e imposta Livello API di destinazione su Livello API 34 o superiore.

Aggiungi l'elenco degli elementi da ignorare di Jetifier a `gradleTemplate.properties`
Modifica Assets/Plugins/Android/gradleTemplate.properties
e aggiungi la seguente riga:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Rimuovi `minSDKVersion` da `AndroidManifest.xml`
Modifica Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml
e rimuovi android:minSdkVersion="21"
dal nodo uses-sdk
.
Il tuo AndroidManifest.xml
dovrebbe avere questo aspetto:
<?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
Prerequisiti
Prima di continuare, assicurati di avere quanto segue:
- Scarica e installa l'ultima versione stabile di Android Studio.
- (Facoltativo) Per informazioni sulla creazione per Android, vedi Versioni di Java nelle build Android
Attivare i modelli Gradle personalizzati
Vai a Impostazioni progetto > Player > Android > Impostazioni di pubblicazione > Build
e attiva Custom Main Gradle Template
e Custom Gradle Properties Template
.

Imposta il livello API target 34
Dal menu principale, apri Modifica > Impostazioni progetto > Player > Android > Altre impostazioni e imposta Livello API di destinazione su Livello API 34 o superiore.

Esportare in Android Studio
Modifica le impostazioni di build di Android selezionando File (o Unity Editor su macOS) > Build Settings e seleziona Export Project:

Se ricevi un avviso che indica che manca il livello API della piattaforma SDK Android 34, seleziona l'opzione "Aggiorna SDK Android".
Apri Android Studio
Questa sezione contiene i passaggi eseguiti in Android Studio.
Aggiorna la configurazione JDK di Gradle
Apri le impostazioni di Gradle da File (o Android Studio su macOS) > Impostazioni > Build > Esecuzione > Deployment > Strumenti di build > Gradle. Individua il menu a discesa Gradle JDK e imposta Gradle JDK in modo che utilizzi JDK 17 o versioni successive.

Se non hai installato JDK 17, seleziona le opzioni Scarica JDK dalla barra dei menu di Gradle JDK e scarica una versione compatibile. Consigliamo il fornitore JetBrains Runtime con supporto aarch64, in modo che corrisponda a quello distribuito da Android Studio.
Aggiorna il file build.gradle a livello di progetto
Imposta la versione degli strumenti Gradle su 8.1.1
o versioni successive.
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 }
Aggiorna /gradle/gradle-wrapper.properties
Imposta distributionUrl
per utilizzare Gradle 8.1.1 o versioni successive.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Aggiorna launcher/build.gradle
- Imposta l'attributo
namespace
utilizzando il valore dell'attributopackage
dilauncher/AndroidManifest.xml
- Imposta
sourceCompatibility
etargetCompatibility
su 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'
Aggiorna settings.gradle
a livello di progetto
Imposta le sezioni pluginManagement
e 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" } } }
Aggiorna unityLibrary/build.gradle
- Imposta
namespace
con il valore"com.unity3d.player"
- Imposta
sourceCompatibility
etargetCompatibility
suJavaVersion.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' }
Aggiorna unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Imposta l'attributo namespace
con il valore "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 } }
Esegui il progetto Android
Da Android Studio, esegui la sincronizzazione di Gradle e esegui il progetto.