首先贴出错误log:Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.sitech.zjsm-2/base.apk"],nativeLibraryDirectories=[/data/app/com.sitech.zjsm-2/lib/arm, /data/app/com.sitech.zjsm-2/base.apk!/lib/armeabi, /vendor/lib, /system/lib]]] couldn't find "libmupdf_java.so"
分析发现,是我们引入的jar包哄包含有so库(我引用的jar包so库是放在了areambi-v7a下面的),然而我的gradle文件写法确是:
productFlavors { x86 { ndk { abiFilter "x86" } } mips { ndk { abiFilter "mips" } } armv7 { ndk { abiFilter "armeabi-v7a" } } arm { ndk { abiFilter "armeabi" } } fat }
所以很容易就可以看出对应的其他类型找不到对应的so库,我们只要修改为:
productFlavors { armv7 { ndk { abiFilter "armeabi-v7a" } } }
就可以顺利运行了!!
补充一下另一个小问题,混淆问题:引入aar时,一定看清楚他们需不需要混淆,如果他们不需要混淆,但是我们的代码需要混淆,那一定要进行过滤!!!