首页 > 解决方案 > ADB0020:Android ABI 不匹配。如何设置目标物理设备的 ABI?

问题描述

我有一个带有 Pie 的全新三星 A10。

我正在尝试运行 MediaPlugin 中提供的示例应用程序: https ://github.com/jamesmontemagno/MediaPlugin

起初,当我尝试构建时遇到此错误:

$(AndroidSupportedAbis) 中的值“armeabi”无效。不再支持此 ABI。请更新您的项目属性以删除旧值。如果属性页面未显示“armeabi”复选框,请取消选中并重新选中其他 ABI 之一并保存更改。

然后我做了一些研究并转到 Android 属性/Android 选项/高级和未选择的 armeabo-v7a。

据我了解,这将删除 32 但支持,我对此很好。

现在我得到这个错误:

ADB0020:Android ABI 不匹配。您正在将支持 'x86;x86_64;arm64-v8a' ABI 的应用程序部署到 ABI 'armeabi-v7a;armeabi' 的不兼容设备。您应该创建一个与您的应用程序 ABI 之一匹配的模拟器,或者将“armeabi-v7a”添加到您的应用程序构建的 ABI 列表中。

我的目标是一款带有 Android Pie 的新 A10 三星手机。我看不到在哪里设置“设备 ABI”,但为什么新的 Pie 手机会在 armeabi-v7a 中插入呢?

我在哪里可以设置“设备 ABI”或以其他方式解决此问题?

我在谷歌上找不到任何东西。谢谢。

更新

我发现这项工作既令人担忧又奇怪:

来自 https://forums.xamarin.com/discussion/146174/vs2019-error-this-abi-is-no-longer-supported

我想了解这里发生了什么,而不仅仅是解决它。

这只是我的 A10 实体三星手机的问题,在模拟器中它似乎工作正常。

标签: xamarin.forms

解决方案


我之前遇到过这个错误。您可以取消勾选所有选项supported architectures以勾选所有选项,如下所示。删除项目的 obj 和 bin 文件夹进行清理和重建。大多数时候,它有效。

在此处输入图像描述

不同的 Android 设备使用不同的 CPU,这些 CPU 又支持不同的指令集。CPU 和指令集的每种组合都有自己的应用程序二进制接口 (ABI)。

有关 Android ABI 的更多支持,您可以参考 Android ABI 指南。 https://developer.android.com/ndk/guides/abis


推荐阅读