错误的原因是"设备支持x86,但APK仅支持armeabi-v7a"

Ale*_*rra 78 android android-studio

我通过测试GitHub中的一些项目来玩Android Studio,当我尝试模拟apk时,它不允许我选择模拟器.

它告诉我:

设备支持x86,但APK仅支持armeabi-v7a

为什么这样做?

Bru*_*Lee 74

我有同样的问题,我从module:app检查build.gradle.事实证明,有一个这样的配置:

    ndk {
        abiFilters "armeabi-v7a", "x86"
    }
Run Code Online (Sandbox Code Playgroud)

当我全力以赴时,一切正常.

我试图处理React Native Android项目.

  • 我有同样的问题,对我来说"x86"就在那里失踪了 (2认同)

use*_*940 73

关闭USB调试并将其重新打开硬件设备.

  • 那些评论我通常会投票,但实际上,它的确有效! (10认同)
  • 之所以可行,是因为“允许计算机连接到此设备”提示不是第一次显示,而是第二次显示。 (2认同)

raf*_*oro 40

在Android Studio中,选择" 生成"菜单,

在此输入图像描述

然后单击Select Build Variant ...并在'Build Variants'窗口中选择x86Debug(或release)

在此输入图像描述

PS:我在Mac上使用Android Studio 2.3


小智 16

在Linux上:文件>无效缓存/重新启动在手机上:而是将此设备更改为传输照片(PTP)


Sac*_*n K 9

在我的Linux机器的情况下adb devices显示

List of devices attached 
44b194f5    no permissions
Run Code Online (Sandbox Code Playgroud)

然后重新启动adb服务器

sudo adb kill-server
Run Code Online (Sandbox Code Playgroud)

然后

sudo adb start-server
Run Code Online (Sandbox Code Playgroud)

然后连接您的设备打开调试并键入

adb devices
List of devices attached 
44b194f5    device
Run Code Online (Sandbox Code Playgroud)

终于能够在设备上运行了


小智 8

我有类似的问题,我通过在"abiFilters"列表中添加"x86"值来解决它,如下所示 -

[打开build.gradle(Module:app)文件] 并在deafultSection中搜索" ndk " 并添加"x86"!

ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!!!


shi*_*hen 7

您需要重新连接设备,然后尝试关闭/打开开发人员选项。

请参阅启用开发人员选项和调试


cri*_*007 6

设备支持x86,但APK仅支持armeabi-v7a)

听起来你x86在模拟器中使用了一个图像.

创建一个单独的.如果需要,请选择"其他图像"选项卡以查找手臂设备.

或者,在实际设备上运行.我认为你列出的回购是为了在Raspberry Pi 3/ODroid上运行.


yao*_*yao 6

就我而言,我的应用使用了一些本地库。每个平台都需要构建相应的库。

因此不会生成x86(或任何其他)平台的本机lib。您必须在以下位置添加abifilter:

在几个地方可以指定abi过滤器:


小智 6

可以确认,在Developer Options中关闭/打开USB调试解决了问题.甚至可能取消Android Studio中的"选择部署目标"窗口,并尝试在切换USB调试后再次运行该应用程序.


小智 5

对我来说,更改电缆选项从

-> Charge Only. 
Run Code Online (Sandbox Code Playgroud)

-> Transfer file.
Run Code Online (Sandbox Code Playgroud)


C-l*_*cia 5

下面的代码对我有用:

ndk {
     abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
Run Code Online (Sandbox Code Playgroud)


Adi*_*Adi 0

在真实手机上测试您的代码。如果您仍然遇到同样的问题,请再次导入您的代码,在此之前您应该更新您的 SDK 并使用 ARM 系统映像创建一个新的模拟器。