Android NDK Apple SiliconM1 运行 进入:未知主机 CPU 架构 arm64

Android NDK Apple SiliconM1 run into: Unknown host CPU architecture arm64

用NDK

构建Android有两种

cmake

externalNativeBuild {
    cmake {
        path "../sharedCode/CMakeLists.txt"
    }
}

这适用于 Apple Silicon M1

ndk-build

externalNativeBuild {
    ndkBuild {
        path "src/main/jni/Android.mk"
    }
}

在 Apple Silicon M1 上,我 运行 进入

Unknown host CPU architecture arm64

问题是解决这个?

为了在 Apple Silicon M1 上解决这个问题,我找到了三个选项

一个

使用 NDK 24

android {
    ndkVersion "24.0.8215888"
    ...
}

你可以用

安装它
echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;24.0.8215888' 1>/dev/null

B

将您的 ndk-build 转换为 cmake 版本

C

更改 ndk-build 以使用 Rosetta x86。用

搜索你安装的 ndk
find ~ -name ndk-build 2>/dev/null

例如

vi ~/Library/Android/sdk/ndk/22.1.7171670/ndk-build

并改变

DIR="$(cd "$(dirname "[=14=]")" && pwd)"
$DIR/build/ndk-build "$@

DIR="$(cd "$(dirname "[=15=]")" && pwd)"
arch -x86_64 /bin/bash $DIR/build/ndk-build "$@

D

使用 x86 Android Studio 版本。但这很慢