O Unity Editor é bloqueado em uma versão específica do Gradle. Versões anteriores do Unity Editor usam versões anteriores do Gradle, que são incompatíveis com a versão mais recente dos anúncios para dispositivos móveis do Google.
Para criar no Android, selecione a versão do Unity Editor que preferir:
2023.1 ou versão mais recente
Ativar o pós-processador de build do Gradle
O pós-processador de build do Gradle é ativado por padrão no Unity Editor 2021.3.41f1 e versões mais recentes. O processador aplica automaticamente todas as configurações necessárias do Gradle e do player para oferecer suporte à versão mais recente do SDK dos anúncios para dispositivos móveis do Google em versões anteriores do Unity Editor.
Configurar manualmente as configurações do Android e do Gradle
Ativar modelos personalizados do Gradle
Acesse Configurações do projeto > Player > Android > Configurações de publicação > Build
e ative Custom Main Gradle Template
e Custom Gradle Properties Template
.

Definir o nível desejado da API como 34
No menu principal, abra Editar > Configurações do projeto > Player > Android > Outras configurações e defina o Nível da API de destino como Nível da API 34 ou mais recente.

2021.3.41f1 - 2022.3
Ativar o pós-processador de build do Gradle
O pós-processador de build do Gradle é ativado por padrão no Unity Editor 2021.3.41f1 e versões mais recentes. O processador aplica automaticamente todas as configurações necessárias do Gradle e do player para oferecer suporte à versão mais recente do SDK dos anúncios para dispositivos móveis do Google em versões anteriores do Unity Editor.
Configurar manualmente as configurações do Android e do Gradle
Ativar modelos personalizados do Gradle
Acesse Configurações do projeto > Player > Android > Configurações de publicação > Build
e ative Custom Main Gradle Template
e Custom Gradle Properties Template
.

Definir o nível desejado da API como 34
No menu principal, abra Editar > Configurações do projeto > Player > Android > Outras configurações e defina o Nível da API de destino como Nível da API 34 ou mais recente.

Adicionar lista de ignorados do jetifier a "gradleTemplate.properties"
Edite Assets/Plugins/Android/gradleTemplate.properties
e adicione a seguinte linha:
android.jetifier.ignorelist=annotation-experimental-1.4.0.aar
Remover "minSDKVersion" de "AndroidManifest.xml"
Edite Assets/Plugins/Android/GoogleMobileAdsPlugin.androidlib/AndroidManifest.xml
e remova android:minSdkVersion="21"
do nó uses-sdk
.
Seu AndroidManifest.xml
vai ficar assim:
<?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
Pré-requisitos
Antes de continuar, verifique se você tem o seguinte:
- Baixe e instale a versão estável mais recente do Android Studio.
- Opcional: para detalhes sobre como criar para Android, consulte Versões Java em builds do Android
Ativar modelos personalizados do Gradle
Acesse Configurações do projeto > Player > Android > Configurações de publicação > Build
e ative Custom Main Gradle Template
e Custom Gradle Properties Template
.

Definir o nível desejado da API como 34
No menu principal, abra Editar > Configurações do projeto > Player > Android > Outras configurações e defina o Nível da API de destino como Nível da API 34 ou mais recente.

Exportar para o Android Studio
Modifique as configurações de build do Android selecionando File (ou Unity Editor no MacOS) > Build Settings e marque "Export Project":

Se você receber um aviso de que o nível 34 da API da plataforma do SDK do Android está faltando, selecione a opção Atualizar SDK do Android.
Abrir o Android Studio
Esta seção contém etapas realizadas no Android Studio.
Atualizar a configuração de JDK do Gradle
Abra as configurações do Gradle em File (ou Android Studio no MacOS) > Settings > Build > Execution > Deployment > Build Tools > Gradle. Localize o menu suspenso Gradle JDK e defina o JDK do Gradle para usar o JDK 17 ou uma versão mais recente.

Se você não tiver o JDK 17 instalado, selecione as opções Download JDK na barra de menus do Gradle JDK e faça o download de uma versão compatível. Recomendamos o fornecedor de tempo de execução da JetBrains com suporte a aarch64, para corresponder ao que o Android Studio distribui.
Atualizar build.gradle no nível do projeto
Defina a versão das ferramentas do Gradle como 8.1.1
ou mais recente.
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 }
Atualizar /gradle/gradle-wrapper.properties
Defina distributionUrl
para usar o Gradle 8.1.1 ou uma versão mais recente.
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
Atualizar launcher/build.gradle
- Defina o atributo
namespace
usando o valor do atributopackage
delauncher/AndroidManifest.xml
. - Defina
sourceCompatibility
etargetCompatibility
como 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'
Atualizar settings.gradle
no nível do projeto
Defina as seções pluginManagement
e 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" } } }
Atualizar unityLibrary/build.gradle
- Defina
namespace
com o valor"com.unity3d.player"
- Defina
sourceCompatibility
etargetCompatibility
comoJavaVersion.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' }
Atualizar unity/Library/GoogleMobileAdsPlugin.androidlib/build.gradle
Defina o atributo namespace
com o 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 } }
Executar o projeto do Android
No Android Studio, execute a sincronização do Gradle e execute o projeto.