相信大家在用真机或者模拟机调试时,或多或少会遇到这个问题,好不容易代码代码敲完,期待着一把过,结果 OK 键一点,毫无征兆的弹出这么一个提示框
是不是一个大大的问号脸?
提示框的内容是:Device supports ,but APK only supports armeabi,x86;
啥意思?就是段位不够,无法匹配
呸呸呸,意思就是你设备的架构是....但是这apk只支持armeabi,x86。
好了。问题找到了,那么好学的你一定会疑问:
- 这尼玛 armeabi,x86等等都是些啥鬼东西呀??
- 为啥我跑其他的有些手机可以呀,就尼玛这个手机不行!
- 那我也不知道我的设备是啥呀,反正不是armeabi,x86咯,那是x86_64?还是?
- 怎么设置解决呢?
不急。且容我给你唐僧一段:
1.其实这几个都是CPU架构的名称,目前Android支持的架构基本都在这里了,如下表:
CPU架构 | 描述 |
armeabi | 第5代 ARM v5TE,使用软件浮点运算,兼容所有ARM设备,通用性强,速度慢 |
armeabi-v7a | 第7代 ARM v7,使用硬件浮点运算,具有高级扩展功能 |
arm64-v8a | 第8代,64位,包含AArch32、AArch64两个执行状态对应32、64bit |
x86 | intel 32位,一般用于平板 |
x86_64 | intel 64位,一般用于平板 |
mips | 少接触 |
mips64 | 少接触 |
2.因为国内现在的厂商手机那叫一个百花齐放啊,所以不同的手机会有不同的CPU架构很正常,只是刚好你的设备不支持这个apk的架构
3.想知道自己的CPU 架构?
方式一:打开CMD命令行窗口,依次输入 adb shell 回车,然后输入 cat /proc/cpuinfo 回车;
方式二:直接在studio窗口,找到底部的 Terminal 界面 同样方式一的输入操作;
由上图可知,我的设备是:AArch64
题外话,如果你输入 adb shell 命令之后,出现“adb错误“'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件” 的错误,别慌,那是你未配置adb的环境变量,具体操作链接: 了解一下
在自己的studio里面,找到程序的主model ,找到 build.gradle,点开之后将自己设备的CPU架构添加进去:
ndk {
abiFilters 'armeabi','x86'
}
由上表可知,我的是AArch64,所以填arm64-v8a即可;
好了,到此就讲完了,小朋友和小朋友的妈妈都喜欢看~