You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacBook Pro M1运行安卓项目报Unknown host CPU architecture: arm64 NDK错误如何解决

苹果M1芯片设备运行安卓项目常见报错解决方案

问题背景

原有安卓项目在Windows系统运行正常,更换为MacBook Pro M1设备后打开项目无法正常运行,首次出现如下报错:

Execution failed for task ':app:kaptDevDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException (no error message)

该报错由Room数据库组件不兼容M1架构导致,临时修复方案如下:

  • 在Room依赖声明前添加sqlite-jdbc适配库:kapt "org.xerial:sqlite-jdbc:3.34.0"
  • 将项目的JDK位置从默认JRE修改为完整JDK

完整Room依赖配置参考:

//Room components
kapt "org.xerial:sqlite-jdbc:3.34.0"
implementation "androidx.room:room-ktx:$rootProject.roomVersion"
kapt "androidx.room:room-compiler:$rootProject.roomVersion"
androidTestImplementation "androidx.room:room-testing:$rootProject.roomVersion"

二次报错问题

完成上述修改后出现Unknown host CPU architecture: arm64报错,涉及的项目配置如下:

SDK模块Gradle配置

android {
    externalNativeBuild {
        ndkBuild {
           path 'Android.mk'
        }
    }
    ndkVersion '21.4.7075529'
}

App模块Gradle配置

externalNativeBuild {
        cmake {
            path "src/main/cpp/CMakeLists.txt"
            version "3.18.1"
            //version "3.10.2"
        }
    }

完整报错信息:

[CXX1405] error when building with ndkBuild using /Users/mac/Desktop/Consumer-Android/ime/dictionaries/jnidictionaryv2/Android.mk: Build command failed. Error while executing process /Users/mac/Library/Android/sdk/ndk/21.4.7075529/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/Users/mac/Desktop/Consumer-Android/ime/dictionaries/jnidictionaryv2/Android.mk APP_ABI=arm64-v8a NDK_ALL_ABIS=arm64-v8a NDK_DEBUG=1 APP_PLATFORM=android-21 NDK_OUT=/Users/mac/Desktop/Consumer-Android/ime/dictionaries/jnidictionaryv2/build/intermediates/cxx/Debug/4k4s2lc6/obj NDK_LIBS_OUT=/Users/mac/Desktop/Consumer-Android/ime/dictionaries/jnidictionaryv2/build/intermediates/cxx/Debug/4k4s2lc6/lib APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n} ERROR: Unknown host CPU architecture: arm64

当前临时方案为注释path 'Android.mk'配置即可正常运行,需求为保留该配置的前提下解决NDK兼容问题。

可行解决方案

  • 方案1:升级Room版本到2.3.0-alpha01 / 2.4.0-alpha03及以上版本,该版本已原生适配M1芯片架构,无需额外添加sqlite-jdbc适配依赖
  • 方案2:直接升级NDK版本到ndkVersion "24.0.8215888",无需修改其他构建脚本即可直接解决arm64架构兼容问题

内容的提问来源于stack exchange,提问作者Atif AbbAsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:39:00