Ce guide explique comment modifier les fichiers build.gradle
à partir des projets AGDE afin de pouvoir les ouvrir dans Android Studio. Il est principalement destiné aux ingénieurs de compilation qui gèrent les projets AGDE.
Après avoir effectué les changements décrits dans ce guide, vous devriez pouvoir :
- Compiler avec Gradle à partir de la ligne de commande et Android Studio
- Créer des APK et des app bundles multi-ABI
- Modifier les sources compatibles à l'aide de la fonctionnalité de service linguistique complète (accès aux définitions, etc.) dans Android Studio
- Déboguer les processus natifs et mixtes à l'aide des débogueurs Android Studio
Cette fonctionnalité AGDE est basée sur la fonctionnalité expérimentale du plug-in Android Gradle pour être compatible avec Ninja en tant que système de compilation.
Modifier le fichier build.gradle au niveau du projet
Modifiez l'élément build.gradle
au niveau du projet pour qu'il fasse référence à la version 7.3.0-alpha02 ou ultérieure du plug-in Android Gradle. Par exemple :
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.0-alpha02'
}
}
Après cette modification, vous devriez toujours pouvoir créer votre projet dans Visual Studio. Nous vous recommandons de le faire maintenant, car il sera plus facile de procéder au débogage avant d'apporter les modifications ci-dessous.
Copier run-msbuild.bat dans votre projet
L'exemple Teapot présent dans dernières versions d'AGDE dispose d'un script appelé run-msbuild.bat
. Ce script sera appelé à partir d'AGP et permettra de localiser et d'appeler MSBuild.
Copiez run-msbuild.bat
dans le dossier contenant le fichier build.gradle
au niveau de l'application.
Modifier le fichier build.gradle
au niveau de l'application
Les objectifs principaux de cette étape sont de configurer l'appel de run-msbuild.bat
et de supprimer les références aux variables MSBUILD_*
.
Définir ndkVersion
Remplacez ndkVersion
par une version NDK spécifique. Par exemple :
android {
ndkVersion "22.1.7171670"
}
Définir minSdkVersion
Remplacez minSdkVersion
par une version minimale du SDK spécifique. Par exemple :
android {
defaultConfig {
minSdkVersion 30
}
}
Appeler run-msbuild.bat
Ajoutez une section pour appeler
run-msbuild.bat
sur le fichier de solution du projet.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" ] } } }
Supprimez toutes les utilisations de
MSBUILD_JNI_LIBS_SRC_DIR
,MSBUILD_ANDROID_OUTPUT_APK_NAME
etMSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR
.En règle générale, les blocs suivants du fichier
build.gradle
au niveau de l'application peuvent être entièrement supprimés.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
Commentaires
Cette fonctionnalité est expérimentale. Vos commentaires sont donc les bienvenus. Voici comment nous les adresser :
- Pour des commentaires et des remarques d'ordre général, ajoutez un commentaire à ce rapport de bug.
- Pour signaler un bug, ouvrez Android Studio, puis cliquez sur Aide/Envoyer des commentaires. N'oubliez pas de mentionner "Systèmes de compilation C/C++ personnalisés" pour que ce rapport de bug parvienne aux bonnes personnes.
- Cliquez sur ce lien si Android Studio n'est pas installé.