Device supports,but APK only supports armeabi-v7a
Android 程序运行在定制的新设备上时,报一下问题:
Device supports,but APK only supports armeabi-v7a
由此引申出一些问题
1.什么是armeabi-v7a?
这些都是CUP架构类型的名称,目前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架构类型?
这个非常容易,在创建模拟器的时候,有ABI的选择(盗图一张)
ps:ABI (application binary interface),应用二进制接口。在计算机中,ABI描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。
3.怎么查看真机的CPU架构?
步骤1.打开cmd命令窗口
2.输入命令adb shell
3.然后输入 cat /proc/cpuinfo
ARMv8-A 是首款64 位架构的ARM 处理器,是移动手机端使用的CPU。其中的两种主要执行状态, AArch64 - 64 位执行状态是其中一种,这不是CPU的型号,而是处理器的指令集。
4.代码是在哪里设置的?
在AndroidStudiozhong,程序的module的build.gradle中有如下代码
android { defaultConfig { ndk { abiFilters 'armeabi-v7a','arm64-v8a' } } }
这里设置了支持CPU的类型,所有解决这个问题的方法自然就知道了,在abiFilters标签后边添加需要支持的类型就可以了。
https://blog.****.net/qq_32452623/article/details/71076023