一、加载.so出现的一些问题

  1. so文件 放进了优先级低的ABI目录

  问题:如果你的项目中,有其他优先级更好的ABI目录,但是你把ABI文件方法放到了优先级低的目录,最后导致你的ABI文件无法被加载

案例:某手机CPU架构是ARMv7,ABI文件是armeabi-v7a,但是放进了armeabi目录中

  结果:项目中有armeabi-v7a的目录,armeabi目录的文件,无法被加载,然后运行报错,出现类似于如下log信息。    

     Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/.xx../base.apk"],nativeLibraryDirectories=[/data/app/.xx../lib/arm, /vendor/lib, /system/lib]]] couldn't find "lib..xx...so"
  
  解决办法:建议armeabi-v7a的目录下的文件和armeabi目录的文件保持一致
 
  2. 两个第三方SDK中的ABI文件优先级不一样
  问题:两个第三方的SDK中ABI文件优先级不一样,手机加载运行时,会导致优先级低的库,无法被加载。
  例子:某手机CPU架构是ARMv7,项目中使用了两个第三方SDK:假设是"支付宝"和"银联".

     支付宝:ABI文件是armeabi-v7a,所以放到armeabi-v7a目录中。

     银联:ABI文件是armeabi,所以放到armeabi目录中。

  结果:在运行时,会发现运行后crash,出现如下日志:

     Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/.xx../base.apk"],nativeLibraryDirectories=[/data/app/.xx../lib/arm, /vendor/lib, /system/lib]]] couldn't find "lib..xx...so"  

    解决方案1:使用同一优先级的ABI文件,ABI文件放入到优先级相同的ABI目录

        支付宝:ABI文件是armeabi-v7a,放到armeabi-v7a目录中。

        银联:ABI文件是armeabi-v7a,放到armeabi-v7a目录中。

        支付宝:ABI文件是armeabi,放到armeabi目录中。

        银联:ABI文件是armeabi,放到armeabi目录中。

  解决方案2:如果两个第三方提供的是不同优先级的ABI文件,则将ABI文件放入到优先级相同的ABI(优先级低的目录下)。

        支付宝:ABI文件是armeabi-v7a,放到armeabi目录中。

        银联:ABI文件是armeabi,放到armeabi目录中。

        

   

Android一些日常的错误的更多相关文章

  1. Xamarin Android提示内存溢出错误

    Xamarin Android提示内存溢出错误 错误信息:java.lang.OutOfMemoryError, Consider increasing the value of $(JavaMaxi ...

  2. android 工程出现感叹号错误

    android 工程出现感叹号错误: 错误问题分析,曾经导入的jar已经不存在工程目录中,project从其他地方导入时.没有及时更新,比如说svn下载到.project的文件,或者是path的文件. ...

  3. PhoneGap,Cordova[3.5.0-0.2.6]:生成Android项目时出现错误(An error occurred while listing Android targets)

    我在升级到Cordova最新版本(3.5.0-0.2.6)后,在生成Android项目(cordova platform add android)时出现错误: Error: An error occu ...

  4. android studio 更新 Gradle错误解决方法(Gradle sync failed)

    android studio 更新 Gradle错误解决方法   Android Studio每次更新版本都会更新Gradle这个插件,但由于长城的问题每次更新都是失败,又是停止在Refreshing ...

  5. Android Studio 开始运行错误

    /******************************************************************************** * Android Studio 开 ...

  6. (转载)android开发常见编程错误总结

    首页 › 安卓开发 › android开发 android开发常见编程错误总结 泡在网上的日子 / 文 发表于2013-09-07 13:07  第771次阅读 android,异常 0 编辑推荐:稀 ...

  7. Android studio2.2 ndk 错误 :format not a string literal and no format arguments!

    在Android Studio2.2 进行NDK编程,在对*char 字符串 进行日志输出时,报错: error: format not a string literal and no format  ...

  8. Android开发各类常见错误解决方案

    本文属于个人平时项目开发过程遇到的一些问题,记录下来并总结解决方案,希望能帮到大家解决问题,有些问题的解决方案是在StackoverFlow上找到的,建议大家遇到问题多去上面找,基本上都能找到解决方案 ...

  9. 新手开发android容易出现的错误(不断更新中...)

    才开始开发android app,因为以前一直是java开发,学习也比较容易. 记录下自己开发过程中出现的一些小问题: 静态变量 在开发中,因为习惯性的问题,经常将一些常用数据(如用户信息等)进行st ...

随机推荐

  1. PL2303 USB转串口 com

    PL2303 USB转串口 com PL-2303 XA/HXA chip http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pc ...

  2. Matplotlib--基本使用

    基础应用 import matplotlib.pyplot as plt import numpy as np #使用np.linspace定义x:范围是(-1,1);个数是50. 仿真一维数据组(x ...

  3. 最适合入门的Laravel中级教程(三)表单验证

    做开发有个原则是永远不能信任用户输入的数据: 即便前端已经做了验证: 在后端 php 也必须要再次验证: laravel 为表单验证提供了强大且简单的方案: 创建示例路由: routes/web.ph ...

  4. vue.js简单添加和删除

    这只是个简单的添加和删除,没有连接后台数据的 <%@ page language="java" contentType="text/html; charset=UT ...

  5. asmx 接收数据过大 发生错误

    原文:https://www.cnblogs.com/xinaixia/p/5945316.html 错误:已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 Max ...

  6. django 数据库配置 ,APP 迁移.模型基础

    # 1.数据库的连接配置django 连接mysql的配置流程:- 安装 pymysql pip install pymysql- 创建数据库用户有创建数据库权限的用户- 创建数据库crm .进入数据 ...

  7. 定义一个包含标签inclusion_tag, 调用模板时报错.. 应该是路径 不对吧...我的templates 是放在app 目录下的.<待处理>

    # 自定义模板标签. 标签的作用,在模板中 实现逻辑,如if ,for 等 from django.template import Library from datetime import datet ...

  8. Python自动化测试用例设计--测试类型

    1.前言 WEB自动化测试时候测试哪些类型,下面将介绍一下: 2. 测试类型 2.1 测试静态内容 静态内容测试是最简单的测试,用于验证静态的.不变化的UI 元素的存在性.例如: 每个页面都有其预期的 ...

  9. compatible

    compatible 英 [kəmˈpætəbl] 美 [kəmˈpætəbəl] adj. 兼容的,相容的; 和谐的,协调的; [生物学] 亲和的; 可以并存的,能共处的;

  10. FortiGate设置E-mail告警

    1.配置邮件服务器 2.配置告警