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 版本。但这很慢
用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。用
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 版本。但这很慢