han*_*ach 2 android android-ndk apple-silicon apple-m1
使用NDK构建Android有两种
externalNativeBuild {
cmake {
path "../sharedCode/CMakeLists.txt"
}
}
Run Code Online (Sandbox Code Playgroud)
这与 Apple Silicon M1 配合良好
externalNativeBuild {
ndkBuild {
path "src/main/jni/Android.mk"
}
}
Run Code Online (Sandbox Code Playgroud)
在 Apple Silicon M1 上我遇到了
Unknown host CPU architecture arm64
Run Code Online (Sandbox Code Playgroud)
问题是要解决这个问题吗?
为了在 Apple Silicon M1 上解决这个问题,我找到了三个选项
使用NDK 24
android {
ndkVersion "24.0.8215888"
...
}
Run Code Online (Sandbox Code Playgroud)
你可以安装它
echo "y" | sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install 'ndk;24.0.8215888' 1>/dev/null
Run Code Online (Sandbox Code Playgroud)
将你的转化ndk-build为cmake构建
更改ndk-build为使用 Rosetta x86。搜索您安装的 ndk
find ~ -name ndk-build 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
例如
vi ~/Library/Android/sdk/ndk/22.1.7171670/ndk-build
Run Code Online (Sandbox Code Playgroud)
并改变
DIR="$(cd "$(dirname "$0")" && pwd)"
$DIR/build/ndk-build "$@"
Run Code Online (Sandbox Code Playgroud)
到
DIR="$(cd "$(dirname "$0")" && pwd)"
arch -x86_64 $DIR/build/ndk-build "$@"
Run Code Online (Sandbox Code Playgroud)
使用 x86 Android Studio 版本。但这很慢