解决Android端libc++_shared.so库冲突问题

前言

        随着App功能增多,集成的so库也会增多,如果系统中多个so库都使用系统自动生成的libc++_shared.so库,如果多个SDK都有该so包,就会出现报错:

解决办法

        如果出现该问题,说明您的项目中有多个SDK共同依赖了C++标准动态库,请在您的主程序build.gradle中增加以下代码:

android {
    packagingOptions {
        pickFirst 'lib/*/libc++_shared.so'
    }
}

        在Android Gradle插件中,packagingOptions用于定义打包apk时的选项。其中,pickFirst是一个针对冲突解决的策略之一。

        具体来说,pickFirst用于指定在打包时遇到冲突时使用哪个文件。当打包过程中出现同名的文件时,如果指定了pickFirst,则会优先使用第一个找到的文件,而其他同名文件则会被忽略。

总结

        网上还有别的方案:删除SDK中的libc++_shared.so文件,这种方式完全不可取,删除后会造成SDK无法编译,或者第三方SDK高度集成的根本无法删除,所以本解决方案才是最可取的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值