Android APK [INSTALL_FAILED_NO_MATCHING_ABIS:无法提取本机库,res=-113]

问题描述 投票:0回答:3

当我尝试在 API 26 上安装 Android 应用程序时。我收到此错误。

首先我尝试使用

build tool version
-
25.3.1
遇到了与下图所示相同的问题。

enter image description here

然后我将

build tools version
更新为
26.0.1
并将支持库版本更新为
26.0.0

最新的 Google Play 服务版本 -

11.0.4

我已经检查过我使用的 android 库是否有本机代码,即 C++ 代码,但我使用的每个库都是用 Java 编写的,除了一个带有 PHP、Python 和 Ruby 的库。

我正在使用

  1. 谷歌地图
  2. 谷歌位置
  3. 谷歌 GCM。

我已尝试将 ABI 拆分包含在我的 Gradle 文件中,如此处

所述
splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}

但每次都遇到同样的错误。

模拟器设备详细信息:

enter image description here

android google-cloud-messaging adb
3个回答
5
投票

基于此线程,当您的应用程序使用ARM架构并且您尝试安装应用程序支持的设备或模拟器(例如x86)时,就会出现此问题。尝试在 ARM 模拟器上安装它。另外,如果您的应用程序是使用 ARMv7 架构构建的,请务必使用带有 ABI 的系统映像:armeabi-v7a

其他参考资料:

希望这有帮助!


5
投票

当 ADB 无法根据您使用的手机或模拟器安装正确的 APK 时,就会出现此问题。 ABI 拆分可以轻松解决这个问题。

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

但是如果不能(这似乎也是您的情况),那么您正在使用的某些库似乎不支持手机或模拟器的 API 级别。为了确保这种情况,请尝试在不同的 API 级别模拟器或手机上安装您的应用程序,您会注意到它在少数模拟器或手机上运行,并且不支持其他少数模拟器。可能有一些本机库与所有 Android 版本不兼容。

就我而言,我成功地在 Android Oreo 和 Pie 之外的 Android 手机上运行该应用程序。原因是我的 gradle 有以下实现,不支持提到的 API 级别(28 及以上)。

implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'

如果您有任何此类库可能不支持所有版本,请尝试将其版本更改为较新的版本,或者如果您可以在没有它的情况下实现您的功能,则将其删除。就我而言,我很幸运,我根本不需要它,删除它解决了问题。


0
投票

尝试删除损坏项目中的.gradle文件夹,

然后将任何工作项目中的 .gradle 文件夹复制并粘贴到损坏的项目中。

© www.soinside.com 2019 - 2024. All rights reserved.