Yerel kitaplık projenizi Gradle derleme bağımlılığı olarak eklemek için: kullanarak Gradle'a CMake veya ndk-build komut dosyası yolunu girin. Zaman Gradle, CMake veya ndk-build ve paylaşılan paketler kitaplığını kullanımınıza sunulur. Gradle, hangi dosyaların bunları Android Studio projenize çekin. Böylece, Proje penceresi. Yerel reklamınız için derleme komut dosyanız yoksa bir proje başlatma belgesi Devam etmeden önce CMake komut dosyasını kullanın.
  Android projenizdeki her modül yalnızca bir CMake veya ndk-build'a bağlanabilir
  komut dosyası olarak da kullanabilirsiniz. Örneğin,
  birden fazla CMake projesi varsa bir CMakeLists.txt dosyası kullanmanız gerekir
  üst düzey CMake derleme komut dosyanız olarak (daha sonra Gradle'ı bağlarsınız) ve
  
  diğer CMake projelerini şu şekilde ekleyin:
  bağımlılıklarını görebilirsiniz. Benzer şekilde, ndk-build kullanıyorsanız
  diğer Makefile'ları üst düzeyinize ekleyebilir.
  Android.mk komut dosyası dosyası.
Gradle'ı yerel bir projeye bağladığınızda Android Studio, Kaynak dosyalarınızı ve yerel kitaplıklarınızı gösteren Proje bölmesi cpp grubunda, harici derleme komut dosyalarınızda ise Harici Derleme Dosyaları grubu.
  Not: Gradle yapılandırmasında değişiklik yaparken
  Projeyi Senkronize Et'i  tıklayarak değişikliklerinizi uygulayın.
  tıklayın. Ayrıca, CMake veya ndk-build ayarlarınızda değişiklik yaparken
  Gradle'a bağladıktan sonra bu dosyayı
  Oluştur > Bağlı C++ Hesabını Yenile
  Projeler'i tıklayın.
 tıklayarak değişikliklerinizi uygulayın.
  tıklayın. Ayrıca, CMake veya ndk-build ayarlarınızda değişiklik yaparken
  Gradle'a bağladıktan sonra bu dosyayı
  Oluştur > Bağlı C++ Hesabını Yenile
  Projeler'i tıklayın.
Android Studio kullanıcı arayüzünü kullanma
Gradle'ı harici bir CMake veya ndk-build projesine bağlamak için Android Studio kullanıcı arayüzü:
- IDE'nin sol tarafından Proje bölmesini açın ve Android görünümünü seçin.
- Yerel kitaplığınıza bağlamak istediğiniz modülü sağ tıklayın, örneğin app modülünü bağlayıp C++ Projesini Bağla'yı seçin. kolayca ayarlayabilirsiniz. Şuna benzer bir iletişim kutusu göreceksiniz: Şekil 4'te gösterilmiştir.
- Açılır menüden Yap'ı veya 
    ndk-build.
    - CMake'i seçerseniz  öğesinin yanındaki alanı kullanın
        CMakeLists.txtkomut dosyasını belirtmek için Proje Yolu dosyası oluşturun.
- ndk-build'i seçerseniz yanındaki alanı kullanın
      Proje Yolu:Android.mkharici ndk-build projenize ekleyin. Android Studio,Application.mkdosyanızla aynı dizinde bulunuyorsa,Android.mkdosyası.
   4.Şekil Harici bir C++ projesini Android Studio iletişim kutusu. 
- CMake'i seçerseniz  öğesinin yanındaki alanı kullanın
        
- Tamam'ı tıklayın.
Gradle'ı manuel olarak yapılandırma
  Gradle'ı yerel kitaplığınıza bağlanacak şekilde manuel olarak yapılandırmak için
  
  Modül düzeyinize externalNativeBuild blok
  build.gradle dosyasını seçin ve dosyayı 
  cmake veya 
  ndkBuild engelleme:
Eski
android { ... defaultConfig {...} buildTypes {...} // Encapsulates your external native build configurations. externalNativeBuild { // Encapsulates your CMake build configurations. cmake { // Provides a relative path to your CMake build script. path "CMakeLists.txt" } } }
Kotlin
android { ... defaultConfig {...} buildTypes {...} // Encapsulates your external native build configurations. externalNativeBuild { // Encapsulates your CMake build configurations. cmake { // Provides a relative path to your CMake build script. path = file("CMakeLists.txt") } } }
  Not: Gradle'ı mevcut bir ndk-build'e bağlamak istiyorsanız
  kullanmak için 
  yerine ndkBuild bloğu
  cmake engelle ve Android.mk dosyanız için göreli bir yol sağlayın. Gradle
  Application.mk dosyasını da içerirse
  Android.mk dosyanızla aynı dizinde bulunur.
İsteğe bağlı yapılandırmaları belirtin
  CMake veya ndk-build için isteğe bağlı argümanlar ve işaretler belirtebilirsiniz:
  başka bir yapılandırılıyor
  externalNativeBuild blok içinde
  Modül düzeyinizin defaultConfig bloğu
  build.gradle dosya. Şuradaki diğer mülklere benzer:
  defaultConfig engelleme, her biri için bu özellikleri geçersiz kılabilirsiniz.
  ürün çeşidini ekleyin.
  Örneğin, CMake veya ndk-build projeniz birden fazla yerel kod tanımlıyorsa
  kitaplıkları ve yürütülebilir dosyaları bulmak için 
  Bunların bir alt kümesini oluşturmak ve paketlemek için kullanılan targets özelliği
  eserleri ortaya çıkarır. Aşağıdaki kod örneğinde
  yapılandırabileceğiniz özelliklerden bazıları şunlardır:
Eski
android { ... defaultConfig { ... // This block is different from the one you use to link Gradle // to your CMake or ndk-build script. externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { // Passes optional arguments to CMake. arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang" // Sets a flag to enable format macro constants for the C compiler. cFlags "-D__STDC_FORMAT_MACROS" // Sets optional flags for the C++ compiler. cppFlags "-fexceptions", "-frtti" } } } buildTypes {...} productFlavors { ... demo { ... externalNativeBuild { cmake { ... // Specifies which native libraries or executables to build and package // for this product flavor. The following tells Gradle to build only the // "native-lib-demo" and "my-executible-demo" outputs from the linked // CMake project. If you don't configure this property, Gradle builds all // executables and shared object libraries that you define in your CMake // (or ndk-build) project. However, by default, Gradle packages only the // shared libraries in your app. targets "native-lib-demo", // You need to specify this executable and its sources in your CMakeLists.txt // using the add_executable() command. However, building executables from your // native sources is optional, and building native libraries to package into // your app satisfies most project requirements. "my-executible-demo" } } } paid { ... externalNativeBuild { cmake { ... targets "native-lib-paid", "my-executible-paid" } } } } // Use this block to link Gradle to your CMake or ndk-build script. externalNativeBuild { cmake {...} // or ndkBuild {...} } }
Kotlin
android { ... defaultConfig { ... // This block is different from the one you use to link Gradle // to your CMake or ndk-build script. externalNativeBuild { // For ndk-build, instead use the ndkBuild block. cmake { // Passes optional arguments to CMake. arguments += listOf("-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang") // Sets a flag to enable format macro constants for the C compiler. cFlags += listOf("-D__STDC_FORMAT_MACROS") // Sets optional flags for the C++ compiler. cppFlags += listOf("-fexceptions", "-frtti") } } } buildTypes {...} productFlavors { ... create("demo") { ... externalNativeBuild { cmake { ... // Specifies which native libraries or executables to build and package // for this product flavor. The following tells Gradle to build only the // "native-lib-demo" and "my-executible-demo" outputs from the linked // CMake project. If you don't configure this property, Gradle builds all // executables and shared object libraries that you define in your CMake // (or ndk-build) project. However, by default, Gradle packages only the // shared libraries in your app. targets += listOf("native-lib-demo", // You need to specify this executable and its sources in your CMakeLists.txt // using the add_executable() command. However, building executables from your // native sources is optional, and building native libraries to package into // your app satisfies most project requirements. "my-executible-demo") } } } create("paid") { ... externalNativeBuild { cmake { ... targets += listOf("native-lib-paid", "my-executible-paid") } } } } // Use this block to link Gradle to your CMake or ndk-build script. externalNativeBuild { cmake {...} // or ndkBuild {...} } }
  Ürün aromalarını yapılandırma ve derleme varyantları hakkında daha fazla bilgi edinmek için şu adrese gidin:
  Derleme Varyantlarını Yapılandırma Örneğin,
  CMake için yapılandırabileceğiniz değişkenlerin bir listesini
  arguments özelliği için CMake Değişkenlerini Kullanma bölümüne bakın.
Önceden oluşturulmuş yerel kitaplıkları dahil et
Gradle'ın hiçbir uygulamada kullanılmayan önceden oluşturulmuş yerel kitaplıkları paketlemesini istiyorsanız
harici yerel derlemesi varsa, bunları src/main/jniLibs/ABI
bulun.
CMake dahil olmak üzere Android Gradle eklentisinin 4.0'dan önceki sürümleri
jniLibs dizininizde eklenebilmesi için IMPORTED hedefin oluşturulması gerekiyor
uygulamasını indirin. Eklentinin önceki bir sürümünden taşıma işlemi gerçekleştiriyorsanız
aşağıdaki gibi bir hatayla karşılaşırsanız:
* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > More than one file was found with OS independent path 'lib/x86/libprebuilt.so'
Android Gradle Plugin 4.0 kullanıyorsanız
IMPORTED CBu hatadan kaçınmak için jniLibs dizininizden hedefler oluşturun.
ABI'leri belirtin
  Gradle, varsayılan olarak yerel kitaplığınızı ayrı bir .so ürününde oluşturur.
  Uygulama İkili Arabirimleri için dosyalar
  (ABI'ler) NDK'nın desteklediği ve bunların tümünü uygulamanıza paket haline getirdiğinde. Şunu istiyorsanız:
  Yerel uygulamanızın yalnızca belirli ABI yapılandırmalarını oluşturmak ve paketlemek için Gradle
  kitaplıkları kullanarak bunları
  ndk.abiFilters
  işaretini aşağıda gösterildiği gibi, modül düzeyindeki build.gradle dosyanızda bulabilirsiniz:
Eski
android {
  ...
  defaultConfig {
    ...
    externalNativeBuild {
      cmake {...}
      // or ndkBuild {...}
    }
    // Similar to other properties in the defaultConfig block,
    // you can configure the ndk block for each product flavor
    // in your build configuration.
    ndk {
      // Specifies the ABI configurations of your native
      // libraries Gradle should build and package with your app.
      abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a',
                   'arm64-v8a'
    }
  }
  buildTypes {...}
  externalNativeBuild {...}
}Kotlin
android {
  ...
  defaultConfig {
    ...
    externalNativeBuild {
      cmake {...}
      // or ndkBuild {...}
    }
    // Similar to other properties in the defaultConfig block,
    // you can configure the ndk block for each product flavor
    // in your build configuration.
    ndk {
      // Specifies the ABI configurations of your native
      // libraries Gradle should build and package with your app.
      abiFilters += listOf("x86", "x86_64", "armeabi", "armeabi-v7a",
                   "arm64-v8a")
    }
  }
  buildTypes {...}
  externalNativeBuild {...}
}
  Çoğu durumda, abiFilters
  ndk blok, Gradle'a hem derleme hem de
  ve yerel kitaplıklarınızın bu sürümlerini paketleyin. Ancak isterseniz
  Gradle'ın yapmasını istediğiniz şeyden bağımsız olarak
ne yapması gerektiğini kontrol edin.
  pakete eklemek içinabiFilters
  
  defaultConfig.externalNativeBuild.cmake blok (veya 
  defaultConfig.externalNativeBuild.ndkBuild bloğu). Gradle
  bu ABI yapılandırmalarını oluşturur ancak yalnızca
  
  defaultConfig.ndk blok.
Uygulama yüklemelerinizin sayısını daha da azaltmak için Android App Bundle kullanarak yayınlamanız önerilir. yalnızca kullanıcının ABI'si ile eşleşen yerel kitaplıklar olarak cihaz indirme işlemiyle birlikte teslim edilir.
 APK'ları kullanarak (Ağustos 2021'den önce oluşturulmuş) yayınlanan eski uygulamalar için şunları yapabilirsiniz:
  yapılandırma
  ABI'ye dayanan birden fazla APK oluşturabilirsiniz. Bunun yerine,
  sürümünü yüklediğinizde Gradle, her ABI için ayrı bir APK oluşturur
  her bir ABI'nın ihtiyaç duyduğu dosyaları desteklemek ve yalnızca paketler. Şu durumda:
  belirtmeden ABI başına birden fazla APK'yı yapılandırın
  Yukarıdaki kod örneğinde gösterildiği gibi abiFilters işareti. Gradle derlemeleri
  yerel kitaplıklarınızın desteklenen tüm ABI sürümleri ancak yalnızca bunları paketler
  birden fazla APK yapılandırmanızda belirttiğinizden emin olun. Farklı bir sürüm oluşturmaktan kaçınmak için
  istemediğiniz yerel kitaplıklar varsa,
  hem abiFilters işareti hem de ABI başına birden fazla APK'nız
  yapılandırma.
