我试图将我的应用程序安装到Android L预览英特尔Atom虚拟设备,它失败了,错误:

INSTALL_FAILED_NO_MATCHING_ABIS

这是什么意思?


当前回答

在visual studio社区版2017中,有时从Android选项中选择受支持的ABIs将不起作用。

在这种情况下,请验证.csproj有以下行,并且在相同的构建配置中没有重复的行。

 <AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>

为了编辑,

卸载你的Android项目 右键单击并选择编辑项目… 确保在构建配置中只出现一次上面的行 保存 右键单击你的android项目并重新加载

其他回答

这个解决方案对我很有效。试试这个, 在应用程序的构建中添加以下行。gradle文件

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

这确实是一个奇怪的错误,可能是由应用程序的多索引引起的。为了解决这个问题,在应用程序的构建中使用下面的块。gradle文件:

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]

一般情况下,要找出哪个库依赖具有不兼容的ABI,

在Android Studio中构建APK文件(菜单build > build Bundle(s)/APK(s) > build APK(s)) // actual于01.04.2020 重命名APK文件,将扩展名“APK”替换为“zip” 解压缩文件到一个新文件夹 进入libs文件夹 找出带有不兼容的abi的*.jar库

您可以尝试升级版本/删除/替换这些库来解决安装apk时INSTALL_FAILED_NO_MATCHING_ABIS问题

@enl8enmentnow的注释应该是使用genymotion修复问题的答案:

如果你在Genymotion上遇到这个问题,即使是在使用ARM转换器,那是因为你正在创建一个像谷歌Nexus 10这样的x86虚拟设备。选择一个ARM虚拟设备,比如自定义平板电脑。

以防万一,这可能会帮助到像我这样的人。 我在Unity 3D中也遇到了同样的问题。我试图使用Android Studio中的模拟器。 所以我在播放器设置中启用了目标架构->x86架构(尽管已弃用),它起作用了!