【发布时间】:2021-12-01 03:02:26
【问题描述】:
我有一个在 Windows 操作系统中运行良好的项目,但是当我切换我的笔记本电脑并在 MacBook Pro M1 中打开一个现有项目时。我无法在 MacBook pro M1 中运行现有的 android 项目。首先我得到了
任务 ':app:kaptDevDebugKotlin' 执行失败。 > 失败 执行时发生 org.jetbrains.kotlin.gradle.internal.KaptExecution > java.lang.reflect.InvocationTargetException(没有错误信息)
这个错误是由于 Room 数据库我应用了一个修复程序,该修复程序在 Room 数据库之前添加到库下面,并且还 将我的 JDK 位置从文件结构从 JRE 更改为 JDK。
kapt "org.xerial:sqlite-jdbc:3.34.0"
//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"
之后我遇到了一个问题,即未知主机 CPU 架构:arm64
我的项目中有一个 SDK 正在使用下面这一行。
android {
externalNativeBuild {
ndkBuild {
path 'Android.mk'
}
}
ndkVersion '21.4.7075529'
}
应用 Gradle
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.18.1"
//version "3.10.2"
}
}
[CXX1405] 使用 ndkBuild 构建时出错 /Users/mac/Desktop/Consumer-Android/ime/dictionaries/jnidictionaryv2/Android.mk: 构建命令失败。执行过程时出错 /Users/mac/Library/Android/sdk/ndk/21.4.7075529/ndk-build 参数 {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} 错误: 未知主机 CPU 架构:arm64
导致此问题的原因以及每当我对此行发表评论时
路径'Android.mk'
它开始工作正常,有什么办法可以帮助我用这段代码运行这个项目而不会遇到这个 NDK 问题?
更新 - Room 似乎在最新更新中得到修复,因此您可以考虑将 Room 更新到最新版本 (2.3.0-alpha01 / 2.4.0-alpha03 或更高版本)
【问题讨论】:
标签: android-studio android-ndk arm64 apple-m1 anysoftkeyboard