L'Editor di Unity è bloccato a una versione specifica di Gradle. Le versioni precedenti dell'Editor di Unity 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 di Unity che preferisci:
2023.1 o versioni successive
Abilita il pre-processore di build Gradle
Il pre-processore di build Gradle è abilitato per impostazione predefinita nell'Editor di Unity 2021.3.41f1 e versioni successive. Il processore applica automaticamente tutte le impostazioni di Gradle e del player necessarie per supportare l'ultimo Google Mobile Ads Unity Plugin nelle versioni precedenti dell'Editor di Unity.
Configura manualmente le impostazioni di Android e Gradle
Abilita i modelli Gradle personalizzati
Vai a Project Settings > Player > Android > Publishing Settings > Build
e abilita Custom Main Gradle Template e Custom Gradle Properties Template.
Imposta il livello API target
Dal menu principale, apri Edit > Project Settings > Player > Android > Other Settings e imposta il livello API target su Livello API 23 o versioni successive.
2021.3.41f1 - 2022.3
Abilita il pre-processore di build Gradle
Il pre-processore di build Gradle è abilitato per impostazione predefinita nell'Editor di Unity 2021.3.41f1 e versioni successive. Il processore applica automaticamente tutte le impostazioni di Gradle e del player necessarie per supportare l'ultimo Google Mobile Ads Unity Plugin nelle versioni precedenti dell'Editor di Unity.
Configura manualmente le impostazioni di Android e Gradle
Abilita i modelli Gradle personalizzati
Vai a Project Settings > Player > Android > Publishing Settings > Build
e abilita Custom Main Gradle Template e Custom Gradle Properties Template.
Imposta il livello API target
Dal menu principale, apri Edit > Project Settings > Player > Android > Other Settings e imposta il livello API target su Livello API 23 o versioni successive.
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 file AndroidManifest.xml dovrebbe avere il seguente 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:
- Scarica e installa l'ultima versione stabile di Android Studio.
- (Facoltativo) Per informazioni sulla creazione per Android, vedi Versioni Java nelle build Android
Abilita i modelli Gradle personalizzati
Vai a Project Settings > Player > Android > Publishing Settings > Build
e abilita Custom Main Gradle Template e Custom Gradle Properties Template.
Imposta il livello API target
Dal menu principale, apri Edit > Project Settings > Player > Android > Other Settings e imposta il livello API target su Livello API 35 o versioni successive.
Esporta in Android Studio
Modifica le impostazioni di build Android selezionando File (o Editor di Unity su macOS) > Build Settings e seleziona Esporta progetto:
Se ricevi un avviso che indica che manca il livello API 35 della piattaforma SDK Android, 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. Ti consigliamo il fornitore di runtime JetBrains 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 in modo che utilizzi 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
namespaceutilizzando il valore dell'attributopackagedilauncher/AndroidManifest.xml - Imposta
sourceCompatibilityetargetCompatibilitysu 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
namespacecon il valore"com.unity3d.player" - Imposta
sourceCompatibilityetargetCompatibilitysuJavaVersion.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 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' }
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.