2014-04-18 21 views
9

Yerel kodlu bir Android projem var. Hata veya uyarı olmadan ndk-build komutunu arayarak komut satırından yerel kod oluşturabiliyorum. Ancak ADT'de açtığımda aşağıdaki hatayı gösterir.Android NDK build, Yöntem çözülemedi

enter image description here

Hata mesajı: projede benzer hatalarla birçok dosya var Method CallStaticIntMethod could not be resolved..

Yapılandırmayı iki kez kontrol ettim ve işte sahip olduğum şey burada. Android yapılı, alet zinciri ve düzgün yapılandırılmış içerir (aşağıdaki resimlere bakın)

enter image description here

enter image description here

Gerekli içerir

enter image description here

da Project Explorer görülebilir ve bunlar boş değil (geçerlidir ve başlık dosyalarını düzeltmek için işaretleyin). Ben proje ve Build bunu Clean zaman

enter image description here

Ama hatalar hala orada. Bunu çözmek için herhangi bir fikir var mı?

Yapılandırma: senin başlıklarını ve tekrar bağlama herhangi kütüphanelerini tüm nerede ADT 22.6.2, NDK R9d'nin (64-bit),

cevap

11

Bazıları tercihlerle uğraştıktan sonra sonunda bir çözüm buldum. Bu, NDK eklentisinde AOSP'ye bildirilen ancak henüz düzeltilmemiş bir bug dur. Yanıtın bir geçmişi # 50 yorumunda açıklanmıştır. İşte benim için çalışan dizi.

  1. Açık Proje Özellikleri - GCC C Compiler ile Android GCC Compiler yerine bölümünde Used Tools yılında>Aracı Chan Editör
  2. ->C/C kurmak ++. Bölüm boşsa, oraya GCC C Compiler girişini ekleyin. enter image description here
  3. Açık Proje Özellikleri - senin h-dosyaların bulunduğu dahil edilecek>Yollar ve Semboller ve dizinleri ekleyin ->C/C++ Genel. Yerel içeriğinizle birlikte bir klasör eklemek için düğmesini kullanın (ilk durumda /AudioPlayer/jni). Daha sonra platform ve toolchains içerir ekleyin. Yerleşik öğeler en altta kalmalıdır. Benim durumumda, takım zincirinin tam yolları aşağıda olduğu gibi idi. Bunlar, 2. adımda değiştirdiğimiz orijinal Android GCC Compiler takım zincirinin yerleşik yollarıdır.

    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include 
    /Tools/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.6/include-fixed 
    
  4. basın Tamam düğmesine temiz ve proje yeniden kurmak. Tüm hatalar gitmeli. Kalırlarsa, bunları bir kez daha Sorunları görünümünden kaldırmaya ve yeniden oluşturmaya çalışın.

Güncelleme: Sana dosyaları dahil etmek yolları ekleyebilir başka bir yerde, bulduk. Ancak, Eclipse sürümüne bağımlı görünüyor. Proje Ayarları -> C/C++ Genel -> İşlemci Yolları, Makroları vb. Dahil Et -> CDT Kullanıcı Ayarları Girişleri -> Ekle. Yukarıda listelenen yolları ekledikten sonra artık derleme sorunu yok. Gelişim tekrar eğlencelidir.

+1

1 ve 2 numaralı adımları yapmak zorunda kalmadım, bu yüzden belki de gerekli değildir. Else bu cevap benim için iyi çalıştı. Teşekkürler. – haffax

+0

Merhaba, bu çözümü denedim. C kodundaki tüm hatalarım giderdi ancak proje adı hala hata sembolünü gösteriyor ve bundan dolayı projeyi yürütemiyorum. Neyin yanlış gittiğini tam olarak bilmiyorum. Lütfen daha fazla öneride bulunun –

0

Evet, OSX 10.9.2 onun IDE neden bilmeden. Hatalar IDE'nin otomatik tamamlama/hata sistemi tarafından oluşturulur. Eklemelerin içeriklerini içerden sabitleyebilir veya tercihlerde hata olarak kaldırabilirsiniz.

-1

Benzer bir hatayı aldım ve Project-> properties-> keşif seçeneklerine giderek ve GCC C Complier'dan GCC C Complier ürününe geçtikten sonra dizinleri derledikten sonra yönetilen derleme sisteminden GCC'ye keşif profilini değiştirerek çözdüm. .

+0

Bu cevap, 6 ay önce işverenin cevabından ne kadar farklı? Ayrıca, "korunan" bir soru nedir? "Sorusundaki" ben de "yanıtlarına bakın. (Http://meta.stackexchange.com/q/52764) – jww

+0

bu farklı bir çözümdür. İşçinin cevabı benim için çalışmadı. çözümünü denedikten sonra, keşif seçenekleri altında keşif profilini değiştirerek sorunu çözdüm. İşçinin cevabının benim için sorunu çözmekle ilgili bir şey yapıp yapmadığından emin değilim, sadece ilk iki adımın gerekli olduğu durumlarda çözümünü denediğimi belirteceğimi düşündüm. –