在android项目里用到了jni,libs生成了armeabi/libXXX.so文件,后来需要引用第三方的so库,直接把第三方库放在libs/armeabi下,重新编译生成程序的时候会把第三方的库给删掉。
解决方法:把第三方库放在jni目录下,修改Android.mk文件。在原来的mk文件最后面加上
include $(CLEAR_VARS)
LOCAL_MODULE := XXX
LOCAL_SRC_FILES := XXX.so
include $(PREBUILT_SHARED_LIBRARY)
如银联的库的名称为libentryex.so,整个mk文件:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello #自己写的库
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libentryex
LOCAL_SRC_FILES := libentryex.so
include $(PREBUILT_SHARED_LIBRARY)
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello #自己写的库
LOCAL_SRC_FILES := hello.c
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libentryex
LOCAL_SRC_FILES := libentryex.so
include $(PREBUILT_SHARED_LIBRARY)
本文介绍在Android项目中使用JNI时如何正确引入第三方的SO库。通过将第三方库放置于jni目录并修改Android.mk文件的方式,避免在重新编译时被删除。文章提供了一个具体的例子来说明如何实现。
7708

被折叠的 条评论
为什么被折叠?



