接入X5内核后出现32位无法在64位机器运行的问题(java.lang.reflect.InvocationTargetException; cause: java.lang.Unsatisfied)

再接入X5内核后,有大部分手机是好的,有些手机会报
java.lang.reflect.InvocationTargetException; cause: java.lang.UnsatisfiedLink的错误,查阅资料后发现是32位无法在64位机器运行的问题。
29106/com.fanmei E/art: dlopen("/data/data/com.tencent.mm/app_tbs/core_share/libwebp_base.so", RTLD_LAZY) failed: 
dlopen failed: "/data/data/com.tencent.mm/app_tbs/core_share/libwebp_base.so" is 32-bit instead of 64-bit
目前X5浏览器官网只提供32位的so文件需要在提供64位的so文件,要不然很容易与友盟还有支付宝的热修复进行冲突,我们需要X5浏览器在
提供一个64位的so文件就可以了,现在如果我把支付宝的64位的热修复so文件去掉,我们的APP直接crash,无法启动起来


解决方法:我这存在的原因是armeabi中.so库多个,32-bit so库 与64-bit so冲突,我是删除32-bit so库后(引用:是因为你的jni目录有 64位的目录,
那样64位的机器就会去对应的目录找so文件,而你又把32位的文件放在了64位的目录里),问题解决了,另外必须配置
defaultConfig {......    ndk {abiFilters "armeabi""armeabi-v7a""x86""mips"    }}

这时会报错,因为gradle的配置中,并不知道是否要做操作系统的兼容,这时只要在gradle.properties文件中加上
Android.useDeprecatedNdk=true

就可以了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值