Unity Editor está bloqueado en una versión específica de Gradle. Las versiones anteriores de Unity Editor usan versiones anteriores de Gradle que no son compatibles con la versión más reciente de Google Mobile Ads.
En la siguiente tabla, se muestra la versión máxima compatible del complemento de Google Mobile Ads que puedes usar según tu versión de Unity Editor:
Unity Editor | Versión del complemento de Google Mobile Ads para Unity |
---|---|
2023.1 o posterior | Más reciente |
2021.3.41f1 - 2022.3 | 9.1.0 |
2021.3.37f1 o anterior | 8.5.3 |
Puedes actualizar Gradle manualmente para usar el complemento de Google Mobile Ads para Unity, incluidos los editores de Unity más antiguos. Para compilar Android, selecciona la versión de Unity Editor que prefieras:
2023.1 o posterior
Habilita las plantillas personalizadas de Gradle
Ve a Project Settings > Player > Android > Publishing Settings > Build y habilita Custom Main Gradle Template
y Custom Gradle Properties Template
.

Establece el nivel de API objetivo en 34
En el menú principal, abre Edit > Project Settings > Player > Android > Other Settings y establece el valor de nivel de API objetivo en nivel de API 34 o uno superior.

2021.3.41f1 - 2022.3
Habilita las plantillas personalizadas de Gradle
Ve a Project Settings > Player > Android > Publishing Settings > Build y habilita Custom Main Gradle Template
y Custom Gradle Properties Template
.

Establece el nivel de API objetivo en 34
En el menú principal, abre Edit > Project Settings > Player > Android > Other Settings y establece el valor de nivel de API objetivo en nivel de API 34 o uno superior.

Agrega la lista negra de Jetifier a "gradleTemplate.properties"
Edita Assets/Plugins/Android/gradleTemplate.properties
y agrega la siguiente línea:
android.jetifier.blacklist=annotation-experimental-1.4.0.aar
Quita "minSDKVersion" de "AndroidManifest.xml"
Edita Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml
y quita android:minSdkVersion="21"
del nodo uses-sdk
.
Tu archivo AndroidManifest.xml
debería verse de la siguiente manera:
<?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>
2021.3.37f1 - 2019.4
Requisitos previos
Antes de continuar, asegúrate de cumplir los siguientes requisitos:
- Descarga e instala la versión estable más reciente de Android Studio.
- Opcional: Para obtener detalles sobre la compilación para Android, consulta Versiones de Java en compilaciones de Android.
Habilita las plantillas personalizadas de Gradle
Ve a Project Settings > Player > Android > Publishing Settings > Build y habilita Custom Main Gradle Template
y Custom Gradle Properties Template
.

Establece el nivel de API objetivo en 34
En el menú principal, abre Edit > Project Settings > Player > Android > Other Settings y establece el valor de nivel de API objetivo en nivel de API 34 o uno superior.

Realiza exportaciones a Android Studio
Para modificar la configuración de la compilación de Android, selecciona File (o Unity Editor en macOS) > Build Settings y marca Export Project:

Si recibes una advertencia que indica que falta el nivel de API 34 en la plataforma del SDK de Android, selecciona la opción "Update Android SDK".
Abre Android Studio
En esta sección, se indican los pasos que se deben seguir en Android Studio.
Actualiza la configuración del JDK de Gradle
Abre la configuración de Gradle desde File (o Android Studio en macOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle. Busca el menú desplegable Gradle JDK y configura el JDK de Gradle para que use JDK 17 o una versión posterior.

Si no tienes instalado el JDK 17, selecciona las opciones de Download JDK en la barra de menú de Gradle JDK y descarga una versión compatible. Recomendamos seleccionar el proveedor JetBrains Runtime compatible con aarch64 para que coincida con la distribución de Android Studio.
Actualiza el archivo build.gradle a nivel del proyecto
Establece la versión de las herramientas de Gradle en 8.1.1
o posterior.
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 }
Actualiza /gradle/gradle-wrapper.properties
Establece distributionUrl
para que use Gradle 8.1.1 o posterior.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Actualiza launcher/build.gradle
- Configura el atributo
namespace
con el valor del atributopackage
delauncher/AndroidManifest.xml
. - Establece
sourceCompatibility
ytargetCompatibility
en 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'
Actualiza settings.gradle
a nivel del proyecto
Se establecieron las secciones pluginManagement
y 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" } } }
Actualiza unityLibrary/build.gradle
- Establece
namespace
con el valor"com.unity3d.player"
. - Establece
sourceCompatibility
ytargetCompatibility
enJavaVersion.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' }
Actualiza unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Establece el atributo namespace
con el valor "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 } }
Ejecuta el proyecto de Android
En Android Studio, ejecuta la sincronización de Gradle y ejecuta el proyecto.