2016-04-14 33 views
1

APP_ABI := armeabi armeabi-v7a ve APP_ABI := x86 olan başka bir tane olmak üzere iki ayrı Application.mk dosya sahibiz. Bunu yapmanın nedeni, her zaman X86 platformu için değil, yalnızca belirli koşullar sağlandığında, inşa etmek istemeyiz. Bu nedenle, kol yapısı koşulsuz olarak bir kabuk betiği tarafından tetiklenir ve bu, koşullar karşılandığında X86 için ndk-build'u tekrar tetikler. Karşı karşıya olduğum sorun her zaman ndk-build tetiklenir, aşağıdaki şeyi yapar: rm -f ./libs/arm64-v8a/lib*.so ./libs/armeabi/lib*.so ./libs/armeabi-v7a/lib*.so ./libs/armeabi-v7a-hard/lib*.so ./libs/mips/lib*.so ./libs/mips64/lib*.so ./libs/x86/lib*.so ./libs/x86_64/lib*.so ve şimdi X86 build tetiklenir ve yapı tamamlanırsa, silinmiş armeabi ve armeabi-v7a libs klasörleri görüyorum. Ndk-build, sadece şu anda APP_ABI aracılığıyla hedeflediğimiz şu libs klasörünü silmemeli mi? Değilse, bunun üstesinden gelmenin bir yolu var mı?ndk-build yönteminin yalnızca yapıyı tetiklediği libs klasörü silme yöntemi

NDK dağıtımında build-all.mk olduğunu düşünüyorum, tüm kitaplıkları temizleyen bu clean: clean-intermediates clean-installed-binaries.

cevap

1

En iyi cevap, ancak aşağıdaki hack

run ndk-build for arm platform 
cp -r ./libs/ /tmp/libs/ 
condition passes 
run ndk-build for x86 platform 
cp -r /tmp/libs/armeabi/ ./libs/armeabi/ 
cp -r /tmp/libs/armeabi-v7a/ ./libs/armeabi-v7a/ 
rm -rf /tmp/libs 
ile sona erdi