xamarin.forms - 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”或以其他方式解决此问题?
我在谷歌上找不到任何东西。谢谢。
更新
我发现这项工作既令人担忧又奇怪:
- 取消 armeabi-v7a 选项
- 建造
- 重新勾选选项
- 建造
- 部署
来自 https://forums.xamarin.com/discussion/146174/vs2019-error-this-abi-is-no-longer-supported
我想了解这里发生了什么,而不仅仅是解决它。
这只是我的 A10 实体三星手机的问题,在模拟器中它似乎工作正常。
解决方案
我之前遇到过这个错误。您可以取消勾选所有选项supported architectures
以勾选所有选项,如下所示。删除项目的 obj 和 bin 文件夹进行清理和重建。大多数时候,它有效。
不同的 Android 设备使用不同的 CPU,这些 CPU 又支持不同的指令集。CPU 和指令集的每种组合都有自己的应用程序二进制接口 (ABI)。
有关 Android ABI 的更多支持,您可以参考 Android ABI 指南。 https://developer.android.com/ndk/guides/abis
推荐阅读
- javascript - 简单的 ajax api 调用给出错误
- excel - VBA无法转换一般存储的日期
- oracle - 计算两个日期之间的工作日 Oracle Rightnow
- node.js - 使用 CURL 在 Node.js 中是否有任何库 JIRA REST API 调用
- autodesk-forge - 如何在 Autodesk-forge 中以相同的质量更改材质和纹理?
- sql - SELECT 在 MySQL 中对 DECIMAL 无效
- three.js - 使用 PlaneGeometry - Three.js 创建具有弯曲边缘的平面
- laravel - EC2 实例上的 Laravel 项目显示目录结构或错误 404
- python - Python Toast 通知在无 GUI 上不起作用
- java - Collectors.grouping 通过给 java.lang.ArrayIndexOutOfBoundsException