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的选择(盗图一张)

Device supports,but APK only supports armeabi-v7a

ps:ABI (application binary interface),应用二进制接口。在计算机中,ABI描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。

3.怎么查看真机的CPU架构?

步骤1.打开cmd命令窗口

       2.输入命令adb shell

       3.然后输入 cat     /proc/cpuinfo

Device supports,but APK only supports armeabi-v7a

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