不知道大家是否碰到过这个问题:
当我们在一个安卓项目里面引用外部.so文件的时候,只要编译过后,你就会发现引用的.so文件会莫名奇妙的消失了。
一开始我碰到这个问题的时候使用了一种很笨重的方法,就是每次先把项目编译好之后,然后在运行,这样也能暂时的解决问题!
不过这样会出现另外的一个问题,就是你每次编译项目过后都需要重新引用一下.so文件。
这里我先说的就是另外的一种方法:
首先我们把我们要引用的.so文件在拷贝到lib文件夹下的同时也拷贝一份到jni文件夹下
然后,修改Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= megjb
LOCAL_SRC_FILES:= $(TARGET_ARCH_ABI)/libmegjb.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
在里面添加中间的一段代码,这里要改成自己需要引用的.so文件,比如libmegjb.so改为xxx.so,megjb改为xxx。
最后一步就是在安卓项目的Activity里面的onCreate方法里面加上这一句
System.loadLibrary("megjb");
这样就完成了,是不是很简单呢!