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 del complemento de anuncios de Google para dispositivos móviles.
En la siguiente tabla, se muestra la versión máxima compatible del complemento de anuncios de Google para dispositivos móviles que puedes usar según tu versión de Unity Editor:
Unity Editor | Versión del complemento de anuncios de Google para dispositivos móviles para Unity |
---|---|
2023.1 o superior | Más reciente |
2021.3.41f1 - 2022.3 | 9.1.0 |
2021.3.37f1 o inferior | 8.5.3 |
Puedes actualizar Gradle de forma manual para usar el complemento de anuncios de Google para dispositivos móviles para Unity, incluso en versiones de Unity Editor más antiguas. Para compilar Android, selecciona la versión de Unity Editor que prefieras:
2023.1 o superior
Habilita las plantillas personalizadas de Gradle
Ve a Project Settings (Configuración del proyecto) > Player (Reproductor) > Android > Publishing Settings (Configuración de publicación) > Build (Compilar) 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 (Editar) > Project Settings (Configuración del proyecto) > Player (Reproductor) > Android > Other Settings (Otros parámetros de configuración) y establece el valor de Target API Level (Nivel de API objetivo) en API Level 34 (Nivel de API 34) o uno superior.

2021.3.41f1 - 2022.3
Habilita las plantillas personalizadas de Gradle
Ve a Project Settings (Configuración del proyecto) > Player (Reproductor) > Android > Publishing Settings (Configuración de publicación) > Build (Compilar) 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 (Editar) > Project Settings (Configuración del proyecto) > Player (Reproductor) > Android > Other Settings (Otros parámetros de configuración) y establece el valor de Target API Level (Nivel de API objetivo) en API Level 34 (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 así:
<?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 haber hecho lo siguiente:
- Descargaste e instalaste 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 (Configuración del proyecto) > Player (Reproductor) > Android > Publishing Settings (Configuración de publicación) > Build (Compilar) 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 (Editar) > Project Settings (Configuración del proyecto) > Player (Reproductor) > Android > Other Settings (Otros parámetros de configuración) y establece el valor de Target API Level (Nivel de API objetivo) en API Level 34 (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 (Archivo) (o Unity Editor en macOS) > Build Settings (Configuración de la compilación) y marca Export Project (Exportar proyecto):

Si recibes una advertencia de que falta el nivel de API 34 de la plataforma del SDK de Android, selecciona la opción "Update Android SDK" ("Actualizar el SDK de Android").
Abre Android Studio
En esta sección, se incluyen los pasos que se realizan en Android Studio.
Actualiza la configuración del JDK de Gradle
Abre la configuración de Gradle desde File (Archivo) (o Android Studio en macOS) > Settings (Configuración) > Build (Compilar) > Execution (Ejecución) > Deployment (Implementación) > Build Tools (Herramientas de compilación) > Gradle. Busca el menú desplegable Gradle JDK (JDK de Gradle) y configura el JDK de Gradle para que use JDK 17 o una versión superior.

Si no tienes instalado el JDK 17, selecciona las opciones de Download JDK (Descargar el JDK) en la barra de menú de Gradle JDK (JDK de Gradle) y descarga una versión compatible. Recomendamos el proveedor de JetBrains Runtime con compatibilidad con aarch64, para que coincida con lo que distribuye 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 una superior.
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 usar Gradle 8.1.1 o una versión superior.
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
Establece 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.