2012-12-14 17 views
9

Olası Çoğalt yeniden geçerli: bir NDK kütüphanesi ile
Prevent ndk-build from automatically cleaning moduleHer NDK inşa tam

Android projesi. NDK r8c. Cygwin kapsamında derleme (eski bir proje).

Bir grup C++ ve C dosyaları ve LOCAL_LDLIBS aracılığıyla bağlanan bazı .a kitaplıkları.

Bir süre önce, her NDK yapısının tüm kaynak dosyaları üzerinden geçtiğini fark ettim. Bir satırda iki kez ndk-build'i çağırsam bile, ikinci denemede tam bir yeniden oluşturma var. Görebildiğim .mk dosyalarındaki efekti hiçbir şey yok ve inşa etmeye çalıştığım komut bir vanilya $NDKPATH/ndk-build. Hiçbir yerde B seçeneği yoktur.

sadece kırışıklık şudur:

/cygdrive/c/android-ndk-r8c/build/core/add-application.mk:128: Android NDK: WARNING: 
APP_PLATFORM android-9 is larger than android:minSdkVersion 3 in 
/cygdrive/d/AppPath/AndroidManifest.xml 

, ne lütfen oluyor: Her yapı üzerinde, NDK şöyle diyor? Her nasılsa, dosya tarihlerinin make tümünün yeniden oluşturulmasına karar verdiğine dayanarak görebilir miyim?

+0

için

$1: $$(__ndk_file_dir)

hat 289 yapı/çekirdek/definitions.mk arasında değiştirmektir. –

cevap

13

R8c'de herhangi bir kaynak kodu değişikliği olmadan bile tam yeniden oluşturmalara neden olan bilinen bir hata var. this bug report'a bakın.

önerilen düzeltme (benim değil) NDK R8d Sabit

$1: | $$(__ndk_file_dir)

+0

Yamayı uyguladı, işe yaradı. Daha iyi bir cevap için (ve upvotes) yama komut dosyasını buraya yapıştırabilirsiniz. –

+1

Bu düzeltme. Ayrıca make için -j işaretini ayarlamanızı öneririz. Bir yazışma için [bu makale] 'ye bakın (http://www.renderpaz.com/2012/12/speed-up-your-android-ndk-build.html). Kısa özet: build.xml dosyasına '' ekleyin. – addaon

+0

@glo: Bu soruyla alakasız. Bu sorunla ilgili bir çözüm bulamıyorsanız, bir _new_ sorusu yayınlamaktan çekinmeyin. – Michael