Modificar arquivos build.gradle para o Android Studio

Este guia descreve como modificar arquivos build.gradle de projetos da AGDE para que possam ser abertos no Android Studio. Ele é destinado principalmente a engenheiros de build que gerenciam projetos da AGDE.

Após realizar as mudanças deste guia, você vai poder:

  • Criar com o Gradle usando a linha de comando e o Android Studio.
  • Criar APKs com várias ABIs e pacotes de apps.
  • Editar fontes com suporte total ao serviço de idiomas (como definição go-to) no Android Studio.
  • Usar os depuradores do Android Studio para depurar processos nativos e mistos.

A AGDE foi criada com base no recurso experimental do Plug-in do Android para Gradle. Ela oferece suporte ao Ninja como um sistema de compilação.

Modificar o arquivo build.gradle no nível do projeto

Mude o build.gradle no projeto para se referir à versão 7.3.0-alpha02 ou mais recente do Plug-in do Android para Gradle. Por exemplo:

buildscript {
    repositories {
       google()
       mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.0-alpha02'
    }
}

Após a mudança, você ainda poderá criar seu projeto no Visual Studio. Recomendamos que você teste isso agora, porque será mais fácil depurar antes de fazer as mudanças abaixo.

Copiar run-msbuild.bat para o projeto

O Teapot de exemplo que vem com as versões mais recentes da AGDE tem um script chamado run-msbuild.bat. Esse script é chamado no AGP e é responsável por localizar e invocar o MSBuild.

Copie run-msbuild.bat para a pasta que contém o arquivo build.gradle do app.

Modificar o arquivo build.gradle no nível do app

O principal objetivo desta etapa é configurar a chamada para run-msbuild.bat e remover as referências às variáveis MSBUILD_*.

Configurar ndkVersion

Mude ndkVersion para uma versão específica do NDK. Por exemplo:

  android {
      ndkVersion "22.1.7171670"
  }

Configurar minSdkVersion

Mude minSdkVersion para uma versão mínima específica do SDK. Por exemplo:

  android {
      defaultConfig {
          minSdkVersion 30
      }
  }

Invocar run-msbuild.bat

  1. Adicione uma seção para invocar run-msbuild.bat no arquivo de solução do projeto.

       android {
           defaultConfig {
               externalNativeBuild {
                   experimentalProperties["ninja.abiFilters"] = [ "x86", "arm64-v8a" ]
                   experimentalProperties["ninja.path"] = "Teapot.sln"
                   experimentalProperties["ninja.configure"] = "run-msbuild"
                   experimentalProperties["ninja.arguments"] = [
                           "\${ndk.moduleMakeFile}",
                           "-p:Configuration=\${ndk.variantName}",
                           "-p:Platform=Android-\${ndk.abi}",
                           "-p:NinjaBuildLocation=\${ndk.buildRoot}",
                           "-p:NinjaProject=GameApplication",
                           "-p:RequireAndroidNdkVersion=\${ndk.moduleNdkVersion}",
                           "-p:RequireMinSdkVersion=\${ndk.minPlatform}",
                           "-t:GenerateBuildNinja"
                    ]
               }
           }
       }
    
  2. Exclua todos os usos de MSBUILD_JNI_LIBS_SRC_DIR, MSBUILD_ANDROID_OUTPUT_APK_NAME e MSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR.

    Normalmente, os seguintes blocos do arquivo build.gradle do app podem ser excluídos.

       sourceSets {
           main {
               jniLibs.srcDirs = [MSBUILD_JNI_LIBS_SRC_DIR]
           }
       }
    
       applicationVariants.all { variant ->
           variant.outputs.all {
               outputFileName = MSBUILD_ANDROID_OUTPUT_APK_NAME
           }
       }
    
       buildDir = MSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR
    

Feedback

Esse recurso é experimental, então seu feedback é muito importante. Veja como dar seu feedback:

  • Para comentários gerais e feedback, adicione um comentário a este bug.
  • Para informar um bug, abra o Android Studio e clique em Help > Submit Feedback. Consulte "Custom C/C++ Build Systems" para saber como direcionar o bug.
  • Clique neste link se você não tiver instalado o Android Studio.