Modifier les fichiers build.gradle pour Android Studio

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 les 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

  1. 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"
                    ]
               }
           }
       }
    
  2. Supprimez toutes les utilisations de MSBUILD_JNI_LIBS_SRC_DIR, MSBUILD_ANDROID_OUTPUT_APK_NAME et MSBUILD_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 Help/Submit Feedback (Aide/Envoyer des commentaires). N'oubliez pas de mentionner "Custom C/C++ Build Systems" (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é.