"android source null" hatası ne anlama gelir ve nasıl hızlı bulunur

Kerem Aydın·7 Temmuz 2026·⏱3 dk

"android source null" hatası, derleyicinin (CMake/NDK/Gradle) beklenen kaynak dosyaları, yolları veya yerel modülün meta verilerini bulamadığında ortaya çıkar — çoğunlukla yanlış NDK/CMake yapılandırması, CMakeLists.txt içindeki hatalı yollar veya yerel kütüphaneler içeren hasarlı/eksik AAR dosyaları nedeniyle. Aşağıda, hemen uygulayabileceğiniz kısa bir teşhis ve düzeltme planı bulunmaktadır.

Hızlı teşhis: İlk 5–10 dakikada neleri kontrol etmeli

  1. Derleme ayrıntılarını toplayın ve kaydedin:
    • Projede şunu çalıştırın:
     ./gradlew clean assembleDebug --info --stacktrace > build_log.txt
     ```
   - build_log.txt dosyasını açın ve "android source", "source null", "Execution failed for task" ifadelerini ve CMake/NDK ile ilgili açıklamaları arayın.

2. Genel yapılandırmayı kontrol edin:
   - File > Project Structure > SDK Location: NDK'nin kurulu olup olmadığı ve yolun doğru olup olmadığı.
   - local.properties: ndk.dir=/path/to/Android/Sdk/ndk/XX.X.X satırı.

3. Build Output ve Gradle Console:
   - Build penceresinde, hatanın gerçekleştiği tam görevi bulun (externalNativeBuildCMake* veya externalNativeBuildNdkBuild).
   - Hatanın tam yığın izini (stack-trace) kopyalayın — bu size CMakeLists.txt satırını ve bağlamı verecektir.

Günlükleri ayrı bir dosyaya kaydedin ve "null" ile "android source" anahtar kelimelerine göre grep/arama yapın — bu zaman kazandırır.

Adım adım düzeltme (belirli düzenlemeler)

  1. Önbellekleri temizleme ve yeniden oluşturma
    • Şunu çalıştırın:
     ./gradlew clean
     rm -rf .gradle .idea build
     ```
   - Android Studio'da: File > Invalidate Caches / Restart.

2. NDK ve CMake'in doğru yapılandırıldığından emin olun
   - SDK Manager'da uyumlu bir NDK ve CMake sürümü kurun. local.properties içinde ndk.dir belirtin.
   - Örnek:
     
 local.properties
 ndk.dir=/Users/you/Android/Sdk/ndk/26.1.10909125
 ```

3. build.gradle (Module: app) içindeki düzenlemeler

  • android {} bloğu içinde externalNativeBuild ve abiFilters öğelerini kontrol edin:
     android {
       compileSdk 34
       defaultConfig {
         ndk {
           abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
         }
       }
       externalNativeBuild {
         cmake {
           path "src/main/cpp/CMakeLists.txt"
           version "3.22.1"
         }
       }
     }
     ```
   - AGP eklentisi sürümünün ve gradle classpath'inin kullanılan NDK ile uyumlu olduğundan emin olun.

4. CMakeLists.txt düzeltmesi
   - Tüm kaynak yollarının doğru olduğunu ve var olmayan değişkenlere başvurmadığını kontrol edin.
     
 cmake_minimum_required(VERSION 3.22.1)
 project(myapp)
 add_library(myapp SHARED src/main/cpp/native-lib.cpp)
 find_library(log-lib log)
 target_link_libraries(myapp ${log-lib})
 ```
  • Varsa, tüm özel "android.source" veya "android.sourceProperties" özelliklerini kaldırın veya düzeltin.
  1. Yerel kütüphaneler içeren AAR/JAR kontrolü
    • Hata üçüncü taraf bir AAR bağlanırken ortaya çıkıyorsa, onu açın ve lib//*.so dosyalarının ve meta verilerinin varlığını kontrol edin.
    • Çoğaltma durumunda build.gradle içine paketleme seçeneklerini ekleyin:
     packagingOptions {
       pickFirst '**/libjsc.so'
     }
     ```

6. Son derleme ve test
   - Derleyin:
     
 ./gradlew assembleDebug --info
 ```
  • Sorun çalışma zamanında (asset yükleme) ortaya çıkıyorsa, başlatma sırasında adb logcat'i inceleyin:
     adb logcat | grep -i "source null"
     ```

NDK ve Android Gradle Plugin (AGP) sürümleri uyumlu olmalıdır — uyumsuz kombinasyonlar sıklıkla garip "null" hatalarına yol açar. AGP'yi güncellemeden NDK'yı güncellemek sorunu kötüleştirebilir.

Sık yapılan hatalar

  • local.properties içinde yanlış yol (ndk.dir gerekli sürümü içermeyen bir klasörü gösteriyor)
  • CMakeLists.txt hataları: cpp/ için yanlış göreceli yollar veya eksik add_library/add_executable
  • AAR, gerekli ABI için yerel kütüphaneler içermiyor (hata yalnızca belirli cihazda ortaya çıkar)
  • Gradle/AS önbelleği eski bağlantılar içeriyor — Invalidate Caches + clean yardımcı olur
  • NDK ve AGP uyumsuzluğu — sürüm uyumluluğu belgelerini kontrol edin

SSS

  • Günlüklerde hata yoksa ama derleme "android source null" ile başarısız oluyorsa ne yapılmalı?

    • --stacktrace ile tam yığın izini kontrol edin; çoğunlukla üst satır gerçek nedeni gizler (örneğin, CMakeLists dosyası farklı bir yoldadır).
  • abiFilters'ı kaldırarak düzeltmek mümkün mü?

    • Bazen evet, ancak bu APK'da gereksiz kütüphanelere yol açabilir. Desteklediğiniz ABI'leri belirtmek daha iyidir.
  • NDK'yı düşürmek/yükseltmek yardımcı olur mu?

    • Evet. NDK'yı yakın zamanda güncellediyseniz, önceki sürüme dönmeyi veya AGP/Gradle'ı uyumlu sürümlere güncellemeyi deneyin.
  • Hata üçüncü taraf bir kütüphanede (AAR) ise ne yapılmalı?

    • Kütüphaneyi güncelleyin, AAR'ı açın ve lib/ içeriğini kontrol edin. Kütüphane hasarlıysa yazarla iletişime geçin veya uygulamayı değiştirin.

Tüm adımlardan sonra hata devam ediyorsa — tam derleme çıktısını (build_log.txt) ve dosyalarınızı buraya ekleyin: build.gradle (proje ve modül) + CMakeLists.txt — daha detaylı analiz etmeme yardımcı olun.