1. 程式人生 > >Android---apk打包libs自動刪除第三方so問題解決(armeabi/armeabi-v7a等多平臺so)

Android---apk打包libs自動刪除第三方so問題解決(armeabi/armeabi-v7a等多平臺so)

開發工具eclipse,如果是as,則不存在這樣的問題。

在引用第三方so時,常常會碰到一個問題:

編譯之後,libs中的第三方so被刪除掉了,導致程式無法執行,而且第三方so是多個平臺(armeabi/armeabi-v7a等等)的,這個問題如何解決?

首先在jni目錄下,新建一個prebuilt資料夾,當然也可以是別的名字。prebuilt用來存放各個平臺的第三方so,這裡以armeabi/armeabi-v7a兩個平臺為例:


然後,在jni層,prebuilt外的Android.mk中新增:

include $(CLEAR_VARS)
LOCAL_MODULE := XXX
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libXXX.so
include $(PREBUILT_SHARED_LIBRARY)
注意:
LOCAL_SRC_FILES := prebuilt/$(TARGET_ARCH_ABI)/libXXX.so
這一句解決了prebuilt中不同平臺問題

如果寫為

LOCAL_SRC_FILES := prebuilt/libXXX.so

那麼,prebuilt資料夾下,只能放一個so