安卓jni項目會刪除其他so檔案的問題解決
安卓項目開發中,項目中使用到jni開發,使用C/C++編寫了自己的so庫,調試和運行一切正常,Android.mk檔案代碼如下:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=observerLOCAL_SRC_FILES:=observer.cLOCAL_C_INCLUDES:= $(LOCAL_PATH)/includeLOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -lloginclude $(BUILD_SHARED_LIBRARY)
如果我們需要引入其他第三方so庫到libs/armeabi中時,在項目編譯啟動並執行時候會發現,剛剛加入的第三方so庫,被刪除了。
遇到這種情況,只需要按如下方法調整即可:
1、在jni中建立目錄“prebuilt”(當然叫其他名稱也可以)
2、修改Android.mk檔案,把我們的第三方so庫加入進去,在我上面Android.mk增加後的內容如下:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := tpnsSecurityLOCAL_SRC_FILES := prebuilt/libtpnsSecurity.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := tpnsWatchdogLOCAL_SRC_FILES := prebuilt/libtpnsWatchdog.soinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE:=observerLOCAL_SRC_FILES:=observer.cLOCAL_C_INCLUDES:= $(LOCAL_PATH)/includeLOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -lloginclude $(BUILD_SHARED_LIBRARY)