ndk-build: command not found hatası çözümü

Merhaba, bir çok NDK ile ilişkili kütüphaneyi derlerken sıklıkla alınan ve benim de çoğu zaman karşıma çıkan can sıkıcı bir hatadır.

Bu hatanın temel nedeni ortam değişkeni (environment variable) olarak PATH içerisine android-ndk yolunun eklenmemiş olmasından kaynaklanmaktadır. Bunun için yapmanız gereken işlem aslında çok basit. Bunun için Terminal’i açmanız yeterlidir.

open ~/.bash_profile

Yukarıdaki komut ile PATH profilimizi güncellemek için açıyoruz.

export ANDROID_SDK=/Users/berkanuslu/adt-bundle-mac-x86_64-20140702/sdk
export ANDROID_NDK=/Users/berkanuslu/android-ndk-r10d
export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$ANDROID_NDK

Açılan dosyanın içerisine yukarıdaki verileri giriyoruz. Burada SDK ve NDK yolunuzu kendi bilgisayarınıza göre vermeniz gerekiyor. En son satırda ise, SDK içerisindeki tools ve platform-tools klasörleri içerisinde tanımlı tüm komutları kullanabileceğimizi, son olarak da NDK içerisindeki tüm komutları, yani buna ndk-build komutu da dahil, kullanmanabileceğimizi belirtmiş oluyoruz. Dosyayı kaydedip kapattıktan sonra değişikliklerin uygulanması için aşağıdaki satırı da çalıştırmamız gerekiyor.

source ~/.bash_profile

Oluşturulan PATH değişkenini görmek için aşağıdaki komutu yazarsanız zaten belirttiğimiz yolların değişkene eklendiğini görürsünüz.

echo $PATH

Aslında mantık olarak bu hatayı almanızdaki temel neden Terminal’in bu komutun yolunu bulamıyor olmasıdır. Bu şekilde ona bu komutu yolunu gösterdikten sonra bu hatayı almayacağız.

Artık terminal’i açıp ndk-build dediğimizde komutu direk çalıştırabiliriz. Bir çok open-source kütüphane de (csipsimple gibi) jni klasöründeki tüm .sh dosyalarında genelde aşağıdaki gibi bir komut satırı kullanır.

NDK_ROOT=$(dirname $(which ndk-build))

Bu satır ile az önce tanımladığımız yolu otomatik olarak bulur ve uygulamayı derler. Tabii ki bu durum Terminal üzerinden derleme işlemi için geçerlidir. Eclipse (güncel sürümleri örn. Luna) veya Android Studio içerisinde zaten NDK yolunu belirteceğimiz kısımlar bulunmaktadır.

ANDROID NDK Path Eclipse

 

 


etiketler: { }