Unity Editor è bloccato su una versione specifica di Gradle, che può entrare in conflitto con le dipendenze richieste dai pacchetti Android più recenti, come Google Mobile Ads. La seguente guida spiega come produrre una compilazione per Android su versioni precedenti di Unity Editor.
La tabella seguente consiglia la versione massima del plug-in Google Mobile Ads compatibile da utilizzare in base a Unity Editor.
Unity Editor | Versione consigliata del plug-in Unity per Google Mobile Ads |
---|---|
2023.1 o versioni successive | Ultimi |
2021.3.41f1 - 2022.3 | 9.1.0 |
2021.3.37f1 o versioni precedenti | 8.5.3 |
Prerequisiti
- Scarica e installa l'ultima versione stabile di Android Studio.
- Per comprendere meglio la compilazione per Android, consulta Versioni Java nelle build Android.
Aggiornare le impostazioni di compilazione di 2022.3 e versioni precedenti
Unity 2022.3 e versioni precedenti richiedono modifiche alle impostazioni di compilazione prima dell'esportazione in Android Studio.
Genera il file baseProjectTemplate.gradle
Attiva i modelli Gradle personalizzati. Vai a Impostazioni progetto > Player > Android > Impostazioni di pubblicazione > Build e seleziona: Modello Gradle base personalizzato. Viene generato il
Plugins/Android/baseProjectTemplate.gradle
file.Modifica il file
Plugins/Android/baseProjectTemplate.gradle
per utilizzare gli strumenti Gradle della versione 8.1.1 o successiva.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 }
Modifiche aggiuntive per Unity 2021.3.37f1 e versioni precedenti
Unity 2021.3.37f1 e versioni precedenti richiedono modifiche aggiuntive per eseguire l'upgrade della compatibilità a Gradle 8.1.1. Completa i seguenti passaggi:
Genera launcherTemplate.gradle
Vai a Impostazioni progetto > Player > Android > Impostazioni di pubblicazione > Build e seleziona Modello Gradle del programma di avvio. Viene generato il
Plugins/Android/launcherTemplate.gradle
file.Modifica
Plugins/Android/launcherTemplate.gradle
in modo da includere l'attributo dello spazio dei nomi. Il valore dell'attributo dello spazio dei nomi deve corrispondere all'attributo del pacchetto trovato nel fileAndroidManifest.xml
del modulo di avvio.android { // TODO: Replace with your app's package name. namespace 'com.google.android.gms.example' }
Genera mainTemplate.gradle
- Vai a Impostazioni progetto > Player > Android > Impostazioni di pubblicazione > Build e seleziona Modello Gradle principale. Viene generato il
Plugins/Android/mainTemplate.gradle
file.
.
Modifica
Plugins/Android/mainTemplate.gradle
in modo da includere l'attributo namespace con valorecom.unity3d.player
.android { namespace 'com.unity3d.player' }
Esportazione in Android Studio
Modifica le impostazioni di compilazione Android per esportare il progetto Unity.
Per esportare in Android Studio, modifica le impostazioni di compilazione di Android. Seleziona File (o Unity Editor su macOS) > Impostazioni di compilazione e seleziona Esporta progetto:
Fai clic sul pulsante Esporta nella parte inferiore della finestra di dialogo Impostazioni di compilazione. Unity genera un progetto Android nella posizione selezionata.
Apri il progetto esportato in Android Studio.
Aggiorna la configurazione JDK di Gradle per utilizzare JDK 17
- In Android Studio, apri le impostazioni di Gradle da File (o Android Studio su macOS) > Impostazioni > Build, esecuzione, dispiegamento > Strumenti di compilazione > Gradle.
Individua il menu a discesa Gradle JDK. Modifica il JDK di Gradle in modo da utilizzare JDK 17.
Se non hai installato JDK 17, seleziona l'opzione Scarica JDK dal menu a discesa JDK di Gradle e scarica una versione compatibile. Ti consigliamo di scegliere il fornitore del runtime JetBrains con il supporto di
arch64
, in modo che corrisponda a quello distribuito da Android Studio.
Aggiorna i file wrapper di Gradle
Modifica il parametro distributionUrl all'interno di gradle/wrapper/gradle-wrapper.properties
per utilizzare Gradle 8.0.1 o versioni successive.
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
Modifiche aggiuntive ad Android Studio per Unity 2021.3.37f1 e versioni precedenti
Unity 2021.3.37f1 e versioni precedenti richiedono modifiche aggiuntive per eseguire l'upgrade della compatibilità a Gradle 8.1.1. Completa i seguenti passaggi:
Modifica l'attributo
gradle.properties
e rimuovi l'attributoandroid.enableR8=false
.Modifica
unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle
e aggiungi un attributo del namespace con valore"com.google.unity.ads"
: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 } }
Esegui il progetto Android
Al termine di questi passaggi, l'applicazione Unity è pronta. In Android Studio, esegui gradle sync e esegui il progetto.