Mengubah file build.gradle untuk Android Studio

Panduan ini menjelaskan cara memodifikasi file build.gradle dari project AGDE agar Anda dapat membukanya di Android Studio. Fungsi ini terutama ditujukan bagi engineer build yang mengelola project AGDE.

Setelah melakukan perubahan sesuai panduan ini, Anda akan dapat:

  • Mem-build dengan Gradle dari command line dan Android Studio.
  • Mem-build APK dan App Bundle multi-ABI.
  • Mengedit sumber dengan dukungan layanan bahasa lengkap (go-to definition, dll.) di Android Studio.
  • Menggunakan debugger Android Studio untuk men-debug proses native dan campuran.

Fitur AGDE ini dibuat pada fitur plugin Android Gradle eksperimental untuk mendukung Ninja sebagai sistem build.

Mengubah file build.gradle level project

Ubah build.gradle level project agar merujuk ke plugin Android Gradle versi 7.3.0-alpha02 atau yang lebih baru. Contoh:

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

Setelah perubahan ini, Anda tetap dapat membuat project di Visual Studio. Sebaiknya Anda mencobanya sekarang karena akan lebih mudah untuk melakukan debug sebelum melakukan perubahan di bawah.

Menyalin run-msbuild.bat ke dalam project

Contoh Teapot yang dikirimkan dengan versi AGDE terbaru memiliki skrip yang disebut run-msbuild.bat. Skrip ini akan dipanggil dari AGP dan bertanggung jawab untuk menemukan dan memanggil MSBuild.

Salin run-msbuild.bat ke folder yang berisi file build.gradle level aplikasi.

Mengubah file build.gradle level aplikasi

Sasaran utama langkah ini adalah mengonfigurasi panggilan ke run-msbuild.bat dan menghapus referensi ke variabel MSBUILD_*.

Menyetel ndkVersion

Ubah ndkVersion ke versi NDK tertentu. Contoh:

  android {
      ndkVersion "22.1.7171670"
  }

Menyetel minSdkVersion

Ubah minSdkVersion ke versi SDK minimum tertentu. Contoh:

  android {
      defaultConfig {
          minSdkVersion 30
      }
  }

Memanggil run-msbuild.bat

  1. Tambahkan bagian untuk memanggil run-msbuild.bat pada file solusi untuk project.

       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. Hapus semua penggunaan MSBUILD_JNI_LIBS_SRC_DIR, MSBUILD_ANDROID_OUTPUT_APK_NAME, dan MSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR.

    Biasanya, blok berikut dalam file build.gradle level aplikasi dapat dihapus sekaligus.

       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
    

Masukan

Fitur ini bersifat eksperimental, jadi kami sangat mengharapkan masukan Anda. Berikut cara memberikan masukan:

  • Untuk komentar dan masukan umum, Anda dapat menambahkan komentar ke bug ini.
  • Untuk melaporkan bug, buka Android Studio, dan klik Help/Submit Feedback. Pastikan Anda memberi referensi ke "Custom C/C++ Build Systems" untuk membantu mengarahkan bug.
  • Klik link ini jika Anda belum menginstal Android Studio.