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
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" ] } } }
Exclua todos os usos de
MSBUILD_JNI_LIBS_SRC_DIR
,MSBUILD_ANDROID_OUTPUT_APK_NAME
eMSBUILD_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.