我通过测试GitHub中的一些项目来玩Android Studio,当我尝试模拟apk时,它不允许我选择模拟器。
它告诉我:
设备支持x86,但APK仅支持armeabi-v7a
为什么会这样做?
答案 0 :(得分:67)
我遇到了同样的问题,我从模块:app 查看 build.gradle 。事实证明,有一个这样的配置:
ndk {
abiFilters "armeabi-v7a", "x86"
}
当我评论全部时,一切正常。
我正在尝试处理React Native Android项目。
答案 1 :(得分:62)
关闭USB调试并将其重新打开硬件设备。
答案 2 :(得分:36)
在Android Studio中,选择构建菜单
然后点击选择Build Variant ... ,然后在“Build Variants”窗口中选择 x86Debug (或发布)
PS:我在Mac上使用Android Studio 2.3
答案 3 :(得分:13)
在Linux上: 文件>无效缓存/重启 在电话上: 相反,请将此设备更改为传输照片(PTP)
答案 4 :(得分:7)
我有类似的问题,我通过在“abiFilters”列表中添加“x86”值来解决它 - 如下所示 -
[Open build.gradle(Module:app)file] 并在 deafultSection 中搜索“ ndk ”并添加“x86”!
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
希望它有所帮助!!!
答案 5 :(得分:7)
对于我的Linux机器ggplot(df) +
geom_text_repel(aes(x = huff_margin_dem,
y = margin16dem_state,
label = abbrev))
,显示
adb devices
然后重新启动adb服务器
List of devices attached
44b194f5 no permissions
然后
sudo adb kill-server
然后连接您的设备,打开调试并输入
sudo adb start-server
最终能够在设备上运行
答案 6 :(得分:6)
设备支持x86,但APK仅支持armeabi-v7a)
听起来您在模拟器中使用了x86
图像。
创建一个单独的。如果需要,请选择“其他图像”选项卡以查找手臂设备。
或者,在实际设备上运行。我认为你列出的回购是为了在Raspberry Pi 3 / ODroid上运行。
答案 7 :(得分:6)
可以确认,在开发者选项中关闭/打开USB调试解决了问题。甚至可能取消"选择部署目标" Android Studio中的窗口,尝试在切换USB调试后再次运行应用程序。
答案 8 :(得分:4)
在我的情况下,我的应用程序使用一些本机库。每个平台都需要构建相应的库。
因此,不会生成x86(或任何其他)平台的本机库。您必须在某处添加一个abifilter:
有几个地方可以指定abi过滤器:
Application.mk 像这样添加你需要的平台:
APP_ABI := armeabi armeabi-v7a x86
的build.gradle
找到abiFilters,并添加你需要的平台,如下所示:
abiFilters "armeabi","armeabi-v7a","x86"
答案 9 :(得分:4)
只需转到设备Settings >> Developer Options >> Restore Default Settings
,然后启用USB debugging
答案 10 :(得分:3)
以下代码对我有用:
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
答案 11 :(得分:3)
您需要重新连接您的设备,然后尝试关闭/打开开发者选项。
答案 12 :(得分:3)
对我来说,将电缆选项从更改为
-> Charge Only.
收件人
-> Transfer file.
答案 13 :(得分:2)
在我的物理设备上,我开始接受这个。修复程序是进入开发人员设置并关闭USB调试。
答案 14 :(得分:1)
如果您使用Ubuntu:
答案 15 :(得分:1)
adb kill-server
adb启动服务器
它在Windows OS上对我有用。
答案 16 :(得分:0)
很多时候,这意味着您尚未授予笔记本电脑/计算机对设备的访问权限。查看您的设备,然后单击“允许访问”按钮以及调试权限。
答案 17 :(得分:0)
使用x86处理器运行AVD的速度比使用ARM仿真器的速度快10倍,但是大多数情况下,您仅为ARM编译APK。为了使用x86 AVD进行更快的仿真运行,我必须执行以下操作(对于Cocos2d-x项目):
app / jni / Android.mk
APP_ABI := armeabi-v7a:x86
gradle.properties
PROP_APP_ABI=armeabi-v7a:x86
app / build.gradle
android {
...
defaultConfig {
...
ndk {
abiFilters = []
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
}
}
}
答案 18 :(得分:0)
重启设备为我解决了问题(本机)
答案 19 :(得分:0)
发生在更新Android Studio之后。在我的情况下,由于构建设置未自动配置到x86Debug-x86中而发生。 只需打开Build >> Select Build Variant >>,即可将其更改,将armeabi-v7a的构建版本选项更改为x86Debug-x86或仿真器中所需的任何内容。
答案 20 :(得分:0)
尝试从“安全性选项”中启用未知来源。 它对我有用。
答案 21 :(得分:0)
我看到了
如果您将CMake用于构建,请检查文件\ proj.android \ gradle.properties,并更新PROP_APP_ABI以包括x86的构建,或者,也可以只使用armeabi-v7a或arm64 -v8a Android图片。
示例: PROP_APP_ABI = armeabi-v7a:arm64-v8a:x86
如果您不使用cmake,请查看\ proj.android \ app \ jni \ Application.mk,以防需要在其中更改ABI设置。
答案 22 :(得分:0)
在真实手机上测试您的代码。如果您仍有同样的问题,请再次导入代码,在此之前您应该更新SDK并使用ARM系统映像创建新的模拟器。