Unity Android Build Failed: NDK not found
NDK hatası, Android için derleme sürecinin temel bileşenlerinden birinin eksik veya yanlış konumlandırıldığı durumlarda karşılaşılan yaygın bir problemdir. Bu kılavuz, hatayı kök nedenine inerek çözüme götüren sistematik bir yaklaşım sunar. Amacımız NDK’yı doğru şekilde tanımlamak, Unity ile Android Gradle entegrasyonunu sağlamlaştırmak ve gelecekte benzer hataların oluşma riskini minimize etmektir.
NDK mevcut mu ve hangi yolda aranıyor?
– Unity, Android için NDK’yı belirli bir konumda arar. Derleme loglarında hangi yolun arandığı ve hangi sürüm uyumsuzluklarının tetiklediği görülebilir. Console çıktısında “NDK not found” ile birlikte “looking for NDK at …” gibi mesajlar kesin ipuçları verir.
– Android Studio üzerinden NDK kurulu mu diye kontrol edin. Android SDK Tools içinde NDK (Side by side) veya benzeri paketlerin yüklü olması gerekir.
– Unity’nin sürüm notlarında, desteklenen NDK sürümlerine dikkat edin. Bazı Unity sürümleri r21–r23 aralığındaki NDK’lar ile daha stabil çalışır; kendi sürümünüz için önerilen aralıkları takip edin.
NDK kurulumu ve doğru yolun ayarlanması
– NDK’yı kurulu olduğundan emin olun ve doğru sürümü kullanmaya çalışın. Yanlış sürüm, derleme sırasında uyumsuzluk hataları yaratır.
– Doğru yolun belirtildiğinden emin olun. Windows için tipik konumlar, kullanıcıya bağlı farklılıklar gösterebilir. Ayrıca Okunabilirlik ve yazılabilirlik izinlerini doğrulayın.
– Ortam değişkenlerini ayarlayın: ANDROID_NDK_HOME veya NDK path’i Unity’nin External Tools ayarlarında da yapılandırılabilir.
Unity ayarları ve proje yapılandırması
– Edit > Preferences > External Tools bölümünden NDK ve SDK yollarını elle belirtin. Otomatik bulmayı kapatıp doğru yolu girin.
– Gradle ile ilgili ayarlar. Proje içinde build.gradle veya gradle.properties üzerinde NDK yolu ile ilgili özel ayarlar varsa, Gradle’nin bu yolu okuyabildiğinden emin olun.
– Android Build Support paketinin kurulu olduğundan emin olun. Unity Hub üzerinden gerekli bileşenlerin (Android Build Support, Android SDK & NDK Tools, OpenJDK) kurulu olması gerekir.
Çevresel değişkenler ve işletim sistemi özel çözümler
– Ekip içinde farklı makineler kullanılıyorsa, her makinede ANDROID_NDK_HOME’un doğru konumda olduğundan emin olun. Yanlış yol veya eksik kurulum hatayı tetikler.
– Windows’ta UAC ve dizin izinleri, NDK klasörüne erişimi engelleyebilir. Klasör izinlerini kontrol edin.
– macOS/Linux üzerinde dosya izinleri ve çalıştırılabilirlik durumları kontrol edilmelidir.
Doğrulama ve temel adımlar
– Unity Build Settings’te Android hedef olarak belirlensin ve Build işlemi öncesi Console çıktılarına bakılsın. NDK ile ilgili alt hatlar (ABI mismatch, cpp-static, parça yüklemesi) burada belirginleşebilir.
– NDK’nın çalıştırılabilir dosyalara erişimini doğrulayın. Özellikle macOS’ta Gatekeeper engelleri veya xattr etiketleri sorun çıkarabilir.
– Sürüm uyumsuzluğu durumunda Unity sürümünüzün önerdiği NDK sürümünü kullanmayı deneyin. Gerekirse proje düzeyinde sabitleme yapın (ndk-version.yaml benzeri yapılandırmalar).
– Temiz derleme yapın: Gradle önbelleğini temizlemek ve Gradle daemonlarını yeniden başlatmak yardımcı olabilir. VPN veya proxy kullanıyorsanız, bu durumlar da bağlantı hatalarına yol açabilir; güvenli bağlantılar kullanın.
Örnek yapılandırma ve doğrulama araçları
1) Ortam değişkeni kurulum örneği
Windows PowerShell:
$env:ANDROID_NDK_HOME = “C:\Android\android-ndk-r23b”
$env:PATH = “$env:PATH;$env:ANDROID_NDK_HOME”
macOS/Linux Bash:
export ANDROID_NDK_HOME=”$HOME/Library/Android/sdk/ndk/23.1.7779620″
export PATH=”$PATH:$ANDROID_NDK_HOME”
2) Unity External Tools ayarları (proje düzeyinde gösterim)
{
“androidNdkPath”: “C:/Android/android-ndk-r23b”,
“androidSdkPath”: “C:/Android/Android/sdk”,
“javaPath”: “C:/Program Files/Java/jdk-17.0.4/bin/java”
}
3) Basit bir doğrulama ifadesi (n8n benzeri yapı için örnek)
{{ $json[“androidNdkPath”] ? “NDK path set: ” + $json[“androidNdkPath”] : “NDK path not set” }}
İleri adımlar: derleme ve hata ayıklama
– Build öncesi Gradle ve Android Gradle Plugin sürümlerinin uyumlu olduğundan emin olun. Özellikle NDK path’i Gradle’ın okuyabildiği konuma işaret etmeli.
– Hata mesajında “NDK not found” dışında başka alt hatlar varsa, ABI uyumsuzluğu, cpp-static library veya linker hatalarını hedef alın.
– Makineler arası tutarlılık için birinci sınıf bir sürüm yöneticisi (örn. asdf, homebrew ile versiyon kurallı) ile NDK sürümünü sabitleyin ve proje içi .yaml benzeri bir konfigürasyon ile kaydedin.
Bu adımlar, “NDK not found” hatasının temel nedenlerini sistematik olarak izole eder ve güvenilir bir şekilde çözüme götürür. Özellikle ekip içi farklı makinelerde sürüm yöneticileri kullanıyorsanız, her makine için aynı NDK sürümünü ve yollarını sağlamak, bu tür hataların tekrarlamasını büyük oranda azaltır.
Bu yazıyı beğendiyseniz, sosyal medya hesaplarınızda paylaşarak daha fazla kişiye ulaşmasını sağlayabilirsiniz. 😊
Ayrıca bizi sosyal medyada da takip edebilirsiniz;
Instagram: @lupusoft
Facebook: @lupusoft
X: @lupusoft
LinkedIn: @lupusoft
Current time (ISO): 2026-03-11T22:47:17.123+03:00
Bir yanıt yazın