Compiler Unity pour Android

L'éditeur Unity est verrouillé sur une version spécifique de Gradle. Les versions antérieures de l'éditeur Unity utilisent des versions antérieures de Gradle, qui ne sont pas compatibles avec la dernière version de Google Mobile Ads.

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

Éditeur Unity Version 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

Vous pouvez mettre à jour manuellement Gradle pour utiliser le dernier plug-in Google Mobile Ads Unity, y compris les anciennes versions de l'éditeur Unity. Pour créer Android, sélectionnez la version de l'éditeur Unity de votre choix:

2023.1 ou version ultérieure

Prérequis

Avant de continuer, assurez-vous de disposer des éléments suivants:

Activer 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) et activez Custom Main Gradle Template et Custom Gradle Properties Template.

Activer les modèles Gradle personnalisés

Définir le niveau d'API cible 34

Dans le menu principal, ouvrez Edit > Project Settings > Player > Android > Other Settings (Modifier > Paramètres du projet > Lecteur > Android > Autres paramètres) et définissez le Target API Level (Niveau d'API cible) sur API Level 34 (Niveau d'API 34) ou version ultérieure.

Définir le niveau d'API cible

Exécuter le projet Android

Dans Android Studio, exécutez la synchronisation Gradle, puis exécutez le projet.

2021.3.4f1 - 2022.3

Prérequis

Avant de continuer, assurez-vous de disposer des éléments suivants:

  • Téléchargez et installez la dernière version stable d'Android Studio.

Activer 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) et activez Custom Main Gradle Template et Custom Gradle Properties Template.

Activer les modèles Gradle personnalisés

Définir le niveau d'API cible 34

Dans le menu principal, ouvrez Edit > Project Settings > Player > Android > Other Settings (Modifier > Paramètres du projet > Lecteur > Android > Autres paramètres) et définissez le Target API Level (Niveau d'API cible) sur API Level 34 (Niveau d'API 34) ou version ultérieure.

Définir le niveau d'API cible

Exporter vers Android Studio

Modifiez les paramètres de compilation Android en sélectionnant File (ou Unity Editor sur macOS) > Build Settings (Fichier (ou Unity Editor sur macOS) > Paramètres de compilation) et cochez Export Project (Exporter le projet) :

Exporter un projet

Ouvrir Android Studio

Cette section contient les étapes effectuées dans Android Studio.

Mettre à jour la configuration JDK Gradle

Ouvrez les paramètres Gradle à partir de File (ou Android Studio sur macOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle (Fichier ou Android Studio sur macOS > Paramètres > Compilation > Exécution > Déploiement > Outils de compilation > Gradle). Recherchez le menu déroulant Gradle JDK (JDK Gradle) et définissez le JDK Gradle pour qu'il utilise JDK 17 ou une version ultérieure.

Mettre à jour la configuration JDK Gradle

Si vous n'avez pas encore installé JDK 17, sélectionnez les options Download JDK (Télécharger JDK) dans la barre de menu du JDK Gradle, puis téléchargez une version compatible. Nous vous recommandons le fournisseur de l'environnement d'exécution JetBrains avec prise en charge d'aarch64, pour qu'il corresponde à ce que distribue Android Studio.

Mettre à jour le fichier build.gradle au niveau du projet

Définissez la version des outils Gradle sur 8.1.1 ou version 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
}

Mettre à jour /gradle/gradle-wrapper.properties

Définissez distributionUrl pour utiliser Gradle 8.1.1 ou version ultérieure.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Exécuter le projet Android

Dans Android Studio, exécutez la synchronisation Gradle, puis exécutez le projet.

2021.3.37f1 à 2019.4

Prérequis

Avant de continuer, assurez-vous de disposer des éléments suivants:

  • Téléchargez et installez la dernière version stable d'Android Studio.

Activer 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) et activez Custom Main Gradle Template et Custom Gradle Properties Template.

Activer les modèles Gradle personnalisés

Définir le niveau d'API cible 34

Dans le menu principal, ouvrez Edit > Project Settings > Player > Android > Other Settings (Modifier > Paramètres du projet > Lecteur > Android > Autres paramètres) et définissez le Target API Level (Niveau d'API cible) sur API Level 34 (Niveau d'API 34) ou version ultérieure.

Définir le niveau d'API cible

Exporter vers Android Studio

Modifiez les paramètres de compilation Android en sélectionnant File (ou Unity Editor sur macOS) > Build Settings (Fichier (ou Unity Editor sur macOS) > Paramètres de compilation) et cochez Export Project (Exporter le projet) :

Exporter le projet

Si vous recevez un avertissement indiquant que le niveau d'API de la plate-forme du SDK Android 34 est manquant, sélectionnez l'option Mettre à jour le SDK Android.

Ouvrir Android Studio

Cette section contient les étapes effectuées dans Android Studio.

Mettre à jour la configuration JDK Gradle

Ouvrez les paramètres Gradle à partir de File (ou Android Studio sur macOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle (Fichier ou Android Studio sur macOS > Paramètres > Compilation > Exécution > Déploiement > Outils de compilation > Gradle). Recherchez le menu déroulant Gradle JDK (JDK Gradle) et définissez le JDK Gradle pour qu'il utilise JDK 17 ou une version ultérieure.

Mettre à jour la configuration JDK Gradle

Si vous n'avez pas encore installé JDK 17, sélectionnez les options Download JDK (Télécharger JDK) dans la barre de menu du JDK Gradle, puis téléchargez une version compatible. Nous vous recommandons le fournisseur de l'environnement d'exécution JetBrains avec prise en charge d'aarch64, pour qu'il corresponde à ce que distribue Android Studio.

Mettre à jour le fichier build.gradle au niveau du projet

Définissez la version des outils Gradle sur 8.1.1 ou version 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
}

Mettre à jour /gradle/gradle-wrapper.properties

Définissez distributionUrl pour utiliser Gradle 8.1.1 ou version ultérieure.

distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip

Mettre à jour launcher/build.gradle

  • Définissez l'attribut namespace à l'aide de la valeur de l'attribut package de launcher/AndroidManifest.xml.
  • Définissez sourceCompatibility et targetCompatibility sur 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'

Mettre à jour settings.gradle au niveau du projet

Définissez les sections pluginManagement et 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"
        }
    }
}

Mettre à jour unityLibrary/build.gradle

  • Définissez namespace avec la valeur "com.unity3d.player".
  • Définissez sourceCompatibility et targetCompatibility sur JavaVersion.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' }

Mettre à jour unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle

Définissez l'attribut namespace sur 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 34
    buildToolsVersion '30.0.2'
    defaultConfig {
        targetSdkVersion 31
    }

    lintOptions {
        abortOnError false
    }
}

Exécuter le projet Android

Dans Android Studio, exécutez la synchronisation Gradle, puis exécutez le projet.