查看当前调试设备CPU架构的方法:

adb.exe shell getprop ro.product.cpu.abi (一般返回值为:armeabi-v7a)

adb.exe shell getprop ro.product.cpu.abi2(一般返回值为:armeabi)

问题场景:

  1. 在 Android LibraryProject A 引用 百度定位组件http://developer.baidu.com/map/index.php?title=android-locsdk
    Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
  2. 在 Android LibraryProjectB 引用 百度推送组件
    Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
  3. 在Android Project Lancher 引用 A、B类库工程
  4. 正常情况下】运行后使用Root Explorer查看/data/data/x.x.lancher/lib目录中
    Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
  5. 现在的情况下】此时运行后,导致 工程B 的libbdpush....SO库 没有正常释放到 /data/data/x.x.lancher/lib 目录中
    Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题
    导致了各种因为无法加载so库才出现的异常如:

    java.lang.UnsatisfiedLinkError: Couldn't load zbar: findLibrary returned null

    java.lang.NoClassDefFoundError: com/zbar/lib/ZbarManager

解决方案:

  • 删除 工程A 中的 工程B 不兼容的CPU架构 ,只保留和 工程B 一样的CPU架构 即可。
    即 工程A 只保留 以下CPU架构:armeabi、mips

经验总结:

  • 在引用各种第三方类库时,还得注意类库之间的兼容性,必须保证都兼容同样的CPU架构 ,才能保证程序不会出现莫名其妙的异常。

By:AsionTang
At:2015年5月26日 12:15:32

更多相关文章

  1. 组件化实践记录——在library module的manifest中使用applicatio
  2. intelliJ IDEA 创建maven android工程的方法
  3. Android Studio最终篇 - 架构
  4. 程序的组件模式
  5. Android工程中R.java文件的重新生成——(注意资源文件的错误)

随机推荐

  1. Android(安卓)Debug Tools
  2. 2018 I/O Android(安卓)详解
  3. Android中Listview通过适配器设置Item的
  4. Android工程中配置OpenCV
  5. 自动化测试 Appium之Python运行环境搭建
  6. [置顶] Android——编译安装Module的控制
  7. Android(安卓)system document
  8. Android(安卓)6.0 Marshmallow root 方法
  9. Android使用饺子播放器播放服务器端的视
  10. Android定制组件之TitleBar之涂鸦