【问题标题】:Error INSTALL_FAILED_NO_MATCHING_ABIS after updating Nexus 5x to Oreo将 Nexus 5x 更新为 Oreo 后出现错误 INSTALL_FAILED_NO_MATCHING_ABIS
【发布时间】:2017-09-18 20:01:06
【问题描述】:

我正在开发一个旧应用程序(我在 4.0 上启动它),在将我的 nexus 5x 升级到 Oreo (8.0) 后我遇到了一些问题。

我的 Nexus 5x 是 x86 设备,每次我尝试为调试 porpuses 安装此 apk 时,都会收到所谓的错误“INSTALL_FAILED_NO_MATCHING_ABIS”。我以前从未遇到过这个问题,所以我开始寻找信息,我发现唯一有用的是:

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

在我的 build.gradle 文件中。

但这不起作用,为了确保问题出在 8.0 而不是另一个外部因素,我用 Nougat (7.1) 创建了一个虚拟 nexus 5x,它运行正常,但是当我将虚拟设备升级到8.0 我面临同样的 ABI 错误。

我的应用没有充分利用等级(真的很旧),但我有这个版本的插件:

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.0'
}

}

我当前的 Android Studio 版本是 2.3.3,我还没有更新到 3.0,因为它处于测试阶段。

我还安装了 Intel x86 Emulator Accelerator(HAXM 安装程序)v 6.2.1

任何迹象都会被欣赏

提前致谢

【问题讨论】:

  • 您是否尝试将 arm64-v8a 添加到您的包含列表中?
  • @WoogieNoogie 我刚刚尝试过,结果相同:(
  • 我不明白,你说“我的 Nexus 5x 是 x86 设备”,这是模拟器还是真正的物理设备?物理设备有一个 Qualcomm Snapdragon 808,它是 arm v8 处理器。我的理解可能是在您更新到 Oreo 之前,该设备正在应用兼容性逻辑并使用 armeabi-v7a 编译代码,一旦更新它可能会失去此功能,现在强制执行您的代码未编译的 arm64-v8a,因此错误。现在对于模拟器,如果您使用的是 Android Nougat 的 x86_64 映像,可能与它没有被编译的情况相同。
  • 好的,我看到@ahasbini,很抱歉造成误解,我认为我的设备(物理设备)是 x86 设备,因为模拟器创建了一个虚拟设备(Nexus 5x)并且它是 x86 设备(根据android studio),这就是为什么我认为我的设备具有相同的架构。然而,仿真设备和物理设备都无法运行应用程序。我将尝试再次使用 arm68-v8a,并再次运行一些测试。谢谢
  • @ahasbini 我曾尝试使用 arm64-v8a,但它仍然无法正常工作。我不明白为什么我在使用 android SDK 时必须指定 ABI(我查看了 apk 并且任何地方都没有 .so 文件......)

标签: android android-studio abi


【解决方案1】:

嗯,问题终于解决了,

问题是我有其他项目,而我的主要项目与这些附加项目相关联。其中之一是 google-play-services-lib,当我生成 apk 时,google-play-services.jar.properties 文件被复制到 libs 文件夹中。

从项目中删除 google-play-services.jar.properties 文件完全解决了问题。

这里有 Google 的完整堆栈:

https://issuetracker.google.com/issues/65941637

感谢大家的cmets!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 2023-03-14
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2022-10-08
    • 2020-04-03
    • 2014-01-28
    相关资源
    最近更新 更多