zoukankan      html  css  js  c++  java
  • Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

    Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

    参考: https://blog.csdn.net/Leafage_M/article/details/86675699

    1.问题由来。
    使用AndroidStudio在genymotion模拟器上安装一个app的时候出现了这个错误报告:

    刚开始没有仔细看前面的error提示,还以为是之前的数据没有清理干净,于是直接点了OK并且见到了一个之前遇到过的错误提示,


    下意识的按照之前的错误进行处理排查。但是没有成效,在把模拟器删除重新创建之后还是出现这个问题,意识到这是一个全新的问题。使用本人的Android真机运行无误,那么问题就是出在了模拟器身上。

    2.问题原因。
    于是查了查发现:

    由于安装的APP中使用了与当前CPU架构不一致的native libraries,所以导致报错,因为现在绝大多数的智能手机还都是采用ARM架构的,虽然android是支持ARM和x86架构,但是它们的指令集是有差别的,APP在开发的时候使用的是ARM的本地库,而我们在用AVD创建模拟器的时候使用的是x86的CPU,因此导致报错。所以,如果APP是在x86架构下编译的我们就创建x86cpu的模拟器,如果APP是在ARM架构编译的我们就创建ARMcpu的模拟器。

    问题已经很清楚了,是当前的app使用了native libraries与模拟器的CPU架构不一致所导致的,而genymotion模拟器默认创建的只支持x86架构而不支持arm架构,这样看来这个app使用了支持arm架构的一些库,所以在x86上会无法安装。事实就是源码中使用了.so文件,当一个应用安装在设备上,只有该设备支持的CPU架构对应的.so文件会被安装。所以对应的arm部分文件无法安装从而导致安装失败。

    3.解决办法。
    那么解决问题可以分为两个方法:

    让genymotion模拟器支持arm架构。

    既然创建的是x86模拟器,那么需要使用转换包使其能够支持arm。

    这里提供网上的一些资源:

    链接:https://pan.baidu.com/s/15UpeGLOsaCpWDkmJe-fjjw
    提取码:fx4r

    本人使用里面提供的ARM_Translation_Marshmallow 完成了转换,使用的是模拟器版本如下:

    启动模拟器,把这个zip文件直接拖进模拟器进行安装:

    点击OK


    安装成功:


    然后我们重启一下模拟器再次尝试安装app,重启的时候可能会慢一点。

    让该app项目将arm和x86的文件都包含进去。

    可以在app的build.gradle中的android{}添加如下内容:

    splits {
    abi {
    enable true
    reset()
    include ‘x86’, ‘armeabi-v7a’,‘x86_64’
    universalApk true
    }
    }


    其中对应的含义如下所示:


    以上两种方法均可解决本人所遇到的问题。

    其实除了cpu指令不兼容外,还有Android 本身版本兼容问题有关,本人发现同样为cpu x86平台的模拟器(真机),在android10 x86不能安装的apk,安装时提示上面-113错误,但是在androdi4.4 x86上却能成功安装运行。

    测试apk如下:下载地址

     1.Android正式版学习手册破解版.apk

     2.java学习手册破解版.apk


    参考文章:
    https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk
    http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits (ABI相关知识)
    https://www.cnblogs.com/janehlp/p/7473240.html (.so文件相关知识)
    https://www.jb51.net/article/99714.htm

  • 相关阅读:
    WF4.0 Beta1 自定义跟踪
    WF4.0 Beta1 流程设计器与Activity Designer
    新版本工作流平台的 (二) 权限算法(组织结构部分)
    WF4.0 Beta1 WorkflowInvoker
    WF4.0 基础篇 (十) Collection 集合操作
    WF4.0 基础篇 (十五) TransactionScope 事物容器
    WF4.0 基础篇 (六) 数据的传递 Arguments 参数
    WF4B1 的Procedural Activity 之InvokeMethod , InvokeMethod<T> 使用
    WF4.0 Beta1 异常处理
    WF4.0 Beta1 变量 Variables
  • 原文地址:https://www.cnblogs.com/it-tsz/p/12329685.html
Copyright © 2011-2022 走看看