Jar包引入,由于so库造成的问题,记录!!!!

本文详细解析了在Android开发中遇到的Native库加载失败问题,特别是找不到特定.so文件的情况。通过调整Gradle配置,正确指定ABI过滤器,解决了因不同架构下缺少对应so库导致的运行时错误。同时,提醒开发者注意混淆设置,确保第三方库正常工作。

首先贴出错误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时,一定看清楚他们需不需要混淆,如果他们不需要混淆,但是我们的代码需要混淆,那一定要进行过滤!!!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值