如果我的 phone 是 ARMv8,为什么 Android Studio 将 C++ 编译为 ARMv7?

Why Android Studio compiles C++ to ARMv7 if my phone is ARMv8?

我有一个 Mi 9 phone,它有一个 SnapDragon 855,据我所知 运行s ARMv8。

我在 Android Studio 中创建了一个简单的 C++ NDK 项目,并尝试 link 为 ARMv8 的 aarch64 编译的库,但是它会抱怨,因为它正在尝试为 ARMv7 编译。

我认为 ARMv7 可以在 ARMv8 上 运行,但为什么要这样做?是否可以强制进行 ARMv8 编译?我只有 ARMv8 版本的库。

修改 build.gradle 如下:

defaultConfig {

    ndk {
        abiFilters 'arm64-v8a'
    }
}

可能会在 https://developer.android.com/ndk/guides/abis

处解释解决方案