Compatibilidade do Unity Editor com o Android

O Unity Editor está bloqueado para uma versão específica do Gradle, o que pode entrar em conflito com as dependências exigidas por pacotes mais recentes do Android, como os anúncios para dispositivos móveis do Google. O guia a seguir ensina como produzir um build do Android em versões anteriores do Editor do Unity.

A tabela a seguir recomenda a versão máxima compatível do plug-in dos anúncios para dispositivos móveis do Google para usar com base no Unity Editor.

Editor do Unity Versão recomendada do plug-in dos anúncios para dispositivos móveis do Google para Unity
2023.1 ou mais recente Mais recente
2021.3.41f1 - 2022.3 9.1.0
2021.3.37f1 ou anterior 8.5.3

Pré-requisitos

Atualizar as configurações de build 2022.3 e anteriores

O Unity 2022.3 e versões anteriores exigem mudanças nas configurações de build antes da exportação para o Android Studio.

Gerar o baseProjectTemplate.gradle

  1. Ative modelos personalizados do Gradle. Acesse Project Settings > Player > Android > Publishing Settings > Build e selecione: Custom Base Gradle Template. Isso gera o arquivo Plugins/Android/baseProjectTemplate.gradle.

  2. Modifique o arquivo Plugins/Android/baseProjectTemplate.gradle para usar as ferramentas do Gradle versão 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
    }
    

Outras mudanças para o Unity 2021.3.37f1 e versões anteriores

O Unity 2021.3.37f1 e versões anteriores exigem mudanças adicionais para fazer upgrade da compatibilidade para o Gradle 8.1.1. Siga estas etapas:

Gerar launcherTemplate.gradle

  1. Acesse Project Settings > Player > Android > Publishing Settings > Build e selecione Launcher Gradle Template. Isso gera o arquivo Plugins/Android/launcherTemplate.gradle.

  2. Modifique Plugins/Android/launcherTemplate.gradle para incluir o atributo de namespace. O valor do atributo de namespace precisa corresponder ao atributo do pacote encontrado no arquivo AndroidManifest.xml do módulo de inicialização.

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

Gerar mainTemplate.gradle

  1. Acesse Project Settings > Player > Android > Publishing Settings > Build e selecione: Main Gradle Template. Isso gera o arquivo Plugins/Android/mainTemplate.gradle.

.

  1. Modifique Plugins/Android/mainTemplate.gradle para incluir o atributo de namespace com o valor com.unity3d.player.

    android {
        namespace 'com.unity3d.player'
    }
    

Exportar para o Android Studio

  1. Modifique as configurações de build do Android para exportar o projeto do Unity.

  2. Para exportar para o Android Studio, modifique as configurações de build do Android. Selecione File (ou Unity Editor no macOS) > Build Settings e marque Export Project:

  3. Pressione o botão Export na parte de baixo da caixa de diálogo "Build Settings". O Unity gera um projeto Android no local selecionado.

  4. Abra o projeto exportado no Android Studio.

Atualizar a configuração do JDK do Gradle para usar o JDK 17

  1. No Android Studio, abra as configurações do Gradle em File (ou Android Studio no macOS) > Settings > Build, Execution, Deployment > Build Tools > Gradle.
  2. Localize o menu suspenso Gradle JDK. Modifique o JDK do Gradle para usar o JDK 17.

    Se o JDK 17 não estiver instalado, selecione a opção Download JDK no menu suspenso do JDK do Gradle e faça o download de uma versão compatível. Recomendamos o fornecedor do ambiente de execução do JetBrains com suporte a arch64, para corresponder ao que o Android Studio distribui.

Atualizar arquivos do wrapper do Gradle

Modifique o parâmetro distributionUrl dentro de gradle/wrapper/gradle-wrapper.properties para usar o Gradle 8.0.1 ou mais recente.

   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

Outras mudanças do Android Studio para o Unity 2021.3.37f1 e versões anteriores

O Unity 2021.3.37f1 e versões anteriores exigem mudanças adicionais para fazer upgrade da compatibilidade com o Gradle 8.1.1. Siga estas etapas:

  1. Modifique o gradle.properties e remova o atributo android.enableR8=false.

  2. Modifique unityLibrary/GoogleMobileAdsPlugin.androidlib/build.gradle e adicione um atributo de namespace com o valor "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
        }
    }
    

Executar o projeto Android

Depois de concluir essas etapas, o aplicativo Unity estará pronto. No Android Studio, execute o Gradle Sync e execute o projeto.