当我尝试在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。
我正在使用
我已尝试在我的Gradle文件中包含ABI Splits,如here
所述splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
但每次遇到同样的错误。
仿真器设备详细信息:
答案 0 :(得分:3)
基于此thread,当您的应用使用ARM体系结构以及您尝试安装应用支持的设备或模拟器(例如x86)时,会出现此问题。尝试在ARM模拟器上安装它。此外,如果您的应用程序是基于ARMv7架构构建的,请确保仅使用ABI系统映像: armeabi-v7a 。
其他参考资料:
希望这有帮助!
答案 1 :(得分:1)
当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'
如果您有任何可能不支持所有版本的库,请尝试将其版本更改为较新的版本,或者,如果没有它就可以实现功能,则可以删除它。就我而言,我很幸运,我根本不需要它,删除它可以解决问题。