当我尝试在 API 26 上安装 Android 应用程序时。我收到此错误。
首先我尝试使用
build tool version
- 25.3.1
遇到了与下图所示相同的问题。
然后我将
build tools version
更新为 26.0.1
并将支持库版本更新为 26.0.0
。
最新的 Google Play 服务版本 -
11.0.4
。
我已经检查过我使用的 android 库是否有本机代码,即 C++ 代码,但我使用的每个库都是用 Java 编写的,除了一个带有 PHP、Python 和 Ruby 的库。
我正在使用
我已尝试将 ABI 拆分包含在我的 Gradle 文件中,如此处
所述splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
但每次都遇到同样的错误。
模拟器设备详细信息:
基于此线程,当您的应用程序使用ARM架构并且您尝试安装应用程序支持的设备或模拟器(例如x86)时,就会出现此问题。尝试在 ARM 模拟器上安装它。另外,如果您的应用程序是使用 ARMv7 架构构建的,请务必仅使用带有 ABI 的系统映像:armeabi-v7a。
其他参考资料:
希望这有帮助!
当 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'
如果您有任何此类库可能不支持所有版本,请尝试将其版本更改为较新的版本,或者如果您可以在没有它的情况下实现您的功能,则将其删除。就我而言,我很幸运,我根本不需要它,删除它解决了问题。
尝试删除损坏项目中的.gradle文件夹,
然后将任何工作项目中的 .gradle 文件夹复制并粘贴到损坏的项目中。