刚接触一个jni项目,在Android studio中安装模拟器以后出现device supports x86 but apk only supports armeabi-v7a错误,又安装了Genymotion,结果出现同样的错误,如下图。
只知道x86,armeabi-v7a是对cpu架构的适配,但不知道怎么改。通过从网上查资料,终于找到解决方法:
首先了解了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: RISC处理器
mips64:RISC处理器
我们可以在build.gradle中有ndk这段代码,只要在后面加上“x86”,再sync now一下,就发现可以运行了。
ndk { abiFilters "armeabi-v7a","x86" }