android只有so文件夹,Android笔记:关于so文件

本文介绍了在Android项目中遇到的.so文件管理问题,特别是针对不同平台的兼容性。当应用在Android 5.0系统上崩溃时,发现原因是缺少x86-64的.so文件。解决方案包括:1) 根据需求选择提供必要的平台SO;2) 更新jar包时同步更新对应.so文件;3) 删除未使用的平台SO文件以避免冲突。信鸽SDK的说明提供了清晰的处理指导,强调至少包含armeabi平台,并给出了示例说明。
摘要由CSDN通过智能技术生成

项目里包含了多个带有so文件的第三方库,支持的平台数不一样。当应用跑在5.0系统上便会崩溃,后发现是有些第三方库的x86-64的so文件没有安装。

查看了官网的ABIManager,似乎写得并不够清晰。处理过程中,发现信鸽sdk附带的一份说明倒是让人很容易的理解so文件的安装机制。

1.信鸽的.so支持所有的android平台,但考虑到平时接入一般只需要armeabi平台,因此libs目录只提供该平台的.so,其它平台可在上层目录的All-Platform-SO找到。

2.嵌入.so可能存在的问题:

a.so文件与jar包不匹配。

解决办法:在更新jar时同时更新对应的so文件;

b.当前工程已有某些平台的so,如只有armeabi平台,却添加信鸽所有平台导致打包时异常。

解决办法:只添加当前工程已有的平台的信鸽so文件。具体可参考网上或以下示例:

armeabi   !此平台既有当前存在so又有信鸽,正常!

--libCurrent.so当前工程已有so

--libtpnsSecurity.so信鸽

--libtpnsWatchdog.so信鸽

armeabi-v7a!此平台既有当前存在so又有信鸽,正常!

--libCurrent.so当前工程已有so

--libtpnsSecurity.so信鸽

--libtpnsWatchdog.so信鸽

mips!!!错误,由于此平台只有信鸽,必须删掉mips目录!!!

--libtpnsSecurity.so信鸽

--libtpnsWatchdog.so信鸽

x86!!!错误,由于此平台只有信鸽,必须删掉x86目录!!!

--libtpnsSecurity.so信鸽

--libtpnsWatchdog.so信鸽

c.若当前工程不存在so文件。

解决办法:可复制所有信鸽平台或只复制armeabi平台

再结合其他参考文章,应该可以大概总结如下:至少包含armeabi平台

多个不同库都有so文件时 就以包含支持最少平台的那个为准

其他参考:

1.http://www.open-open.com/lib/view/open1440421271716.html

2.http://stackoverflow.com/questions/30782848/how-to-use-32-bit-native-libaries-on-64-bit-android-device

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值