Compatibilité de l'éditeur Unity avec Android

L'éditeur Unity est verrouillé sur une version spécifique de Gradle, ce qui peut entrer en conflit avec les dépendances requises par les packages Android plus récents, tels que Google Mobile Ads. Le guide suivant explique comment créer un build Android sur des versions antérieures de l'éditeur Unity.

Le tableau suivant recommande la version maximale du plug-in Google Mobile Ads compatible à utiliser en fonction de votre éditeur Unity.

Éditeur Unity Version recommandée du plug-in Google Mobile Ads Unity
2023.1 ou version ultérieure Le plus récent
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 ou version antérieure 8.5.3

Prérequis

Mettre à jour les paramètres de compilation 2022.3 et versions antérieures

Unity 2022.3 et les versions antérieures nécessitent des modifications des paramètres de compilation avant l'exportation vers Android Studio.

Générer le fichier baseProjectTemplate.gradle

  1. Activez les modèles Gradle personnalisés. Accédez à Project Settings > Player > Android > Publishing Settings > Build (Paramètres du projet > Lecteur > Android > Paramètres de publication > Compilation), puis sélectionnez Custom Base Gradle Template (Modèle de base Gradle personnalisé). Le fichier Plugins/Android/baseProjectTemplate.gradle est alors généré.

  2. Modifiez le fichier Plugins/Android/baseProjectTemplate.gradle pour utiliser les outils Gradle version 8.1.1 ou ultérieure.

    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
    }
    

Modifications supplémentaires pour Unity 2021.3.37f1 et versions antérieures

Unity 2021.3.37f1 et les versions antérieures nécessitent des modifications supplémentaires pour mettre à niveau la compatibilité avec Gradle 8.1.1. Procédez comme suit :

Générer launcherTemplate.gradle

  1. Accédez à Project Settings > Player > Android > Publishing Settings > Build (Paramètres du projet > Lecteur > Android > Paramètres de publication > Compilation), puis sélectionnez Launcher Gradle Template (Modèle Gradle du lanceur). Le fichier Plugins/Android/launcherTemplate.gradle est alors généré.

  2. Modifiez Plugins/Android/launcherTemplate.gradle pour inclure l'attribut d'espace de noms. La valeur de l'attribut d'espace de noms doit correspondre à l'attribut de package trouvé dans le fichier AndroidManifest.xml du module de lanceur.

    android {
        // TODO: Replace with your app's package name.
        namespace 'com.google.android.gms.example'
    }
    

Générer mainTemplate.gradle

  1. Accédez à Project Settings > Player > Android > Publishing Settings > Build (Paramètres du projet > Lecteur > Android > Paramètres de publication > Compilation), puis sélectionnez Main Gradle Template (Modèle Gradle principal). Le fichier Plugins/Android/mainTemplate.gradle est alors généré.

.

  1. Modifiez Plugins/Android/mainTemplate.gradle pour inclure l'attribut de nom d'espace de noms avec la valeur com.unity3d.player.

    android {
        namespace 'com.unity3d.player'
    }
    

Exporter vers Android Studio

  1. Modifiez les paramètres de compilation Android pour exporter le projet Unity.

  2. Pour exporter vers Android Studio, modifiez les paramètres de compilation Android. Sélectionnez File (Fichier) ou Unity Editor (Éditeur Unity) > Build Settings (Paramètres de compilation) et cochez Export Project (Exporter le projet).

  3. Appuyez sur le bouton Export (Exporter) en bas de la boîte de dialogue "Build Settings" (Paramètres de compilation). Unity génère un projet Android à l'emplacement sélectionné.

  4. Ouvrez le projet exporté dans Android Studio.

Mettre à jour la configuration du JDK Gradle pour utiliser JDK 17

  1. Dans Android Studio, ouvrez les paramètres Gradle à partir de File (Fichier) (ou Android Studio sous macOS) > Settings (Paramètres) > Build, Execution, Deployment (Compilation, exécution, déploiement) > Build Tools (Outils de compilation) > Gradle.
  2. Recherchez la liste déroulante Gradle JDK. Modifiez le JDK Gradle pour utiliser JDK 17.

    Si vous n'avez pas installé JDK 17, sélectionnez l'option Download JDK (Télécharger le JDK) dans le menu déroulant JDK Gradle, puis téléchargez une version compatible. Nous vous recommandons d'utiliser le fournisseur de runtime JetBrains avec la prise en charge de arch64, pour qu'il corresponde à ce que distribue Android Studio.

Mettre à jour les fichiers de wrapper Gradle

Modifiez le paramètre distributionUrl dans gradle/wrapper/gradle-wrapper.properties pour utiliser Gradle 8.0.1 ou une version ultérieure.

   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

Modifications supplémentaires apportées à Android Studio pour Unity 2021.3.37f1 et versions antérieures

Unity 2021.3.37f1 et les versions antérieures nécessitent des modifications supplémentaires pour mettre à niveau la compatibilité avec Gradle 8.1.1. Procédez comme suit :

  1. Modifiez gradle.properties et supprimez l'attribut android.enableR8=false.

  2. Modifiez unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle et ajoutez un attribut d'espace de noms avec la valeur "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
        }
    }
    

Exécuter le projet Android

Une fois ces étapes terminées, l'application Unity est prête. Dans Android Studio, exécutez la synchronisation Gradle, puis exécutez le projet.