zoukankan      html  css  js  c++  java
  • Android引用百度定位API第三方组件后导致其它.so文件无法正常加载的问题

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

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

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

    问题场景:

    1. 在 Android Library Project A 引用 百度定位组件 http://developer.baidu.com/map/index.php?title=android-locsdk

    2. 在 Android Library Project B 引用 百度推送组件
    3. 在 Android Project Lancher 引用 A、B类库工程
    4. 正常情况下】运行后使用Root Explorer查看/data/data/x.x.lancher/lib目录中
    5. 现在的情况下】此时运行后,导致 工程B 的libbdpush....SO库 没有正常释放到 /data/data/x.x.lancher/lib 目录中

      导致了各种因为无法加载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

    作者:Asion Tang
    凡是没有注明[转载]的文章,本Blog发表的文章版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    回调函数
    未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包
    顶帽变化(转载)
    协程 + asyncio
    docker
    vue+uwsgi+nginx部署前后端分离项目
    html
    关于html的基础标签
    关于python中的GIL
    hashlib模块
  • 原文地址:https://www.cnblogs.com/AsionTang/p/4530286.html
Copyright © 2011-2022 走看看