Execution failed for task ':UmeLibrary:kaptDebugKotlin'.

問題發生起因:換電腦(換到Mac-Mini-Apple M1)上
項目相關配置版本:

ext {
        // Sdk and tools
        compileSdkVersion = 30
        minSdkVersion = 23
        targetSdkVersion = 29

        // App dependencies
        kotlin_version = '1.5.30'
}
dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}

還有個Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip

錯誤內容:

Execution failed for task ':UmeLibrary:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
> java.lang.reflect.InvocationTargetException (no error message)

根據下面的提示,我打印出具體錯誤:

# [Caused by: java.lang.Exception: No native library is found for os.name=Mac and os.arch=aarch64\. path=/org/sqlite/native/Mac/aarch64](https://stackoverflow.com/questions/68884589/caused-by-java-lang-exception-no-native-library-is-found-for-os-name-mac-and-o)

這個錯誤的意思大概是因為因為sqlite的jar包不適配arm 也就是Mac m1,所以解決方案是換jdk,我使用的AndroidStudio,于是我使用[command+;]打開
image.png

從中選擇
image.png

點擊確認,一步步解決我標題報出來的錯誤問題了。

這個錯誤我找了整整一天,最后感謝StackOverflow上的一位外國網友提供的建議。
如果你使用的是Kotlin依賴,千萬不要相信網上直接把kapt換成annotationProcessor
這樣是解決不了問題的,如下(錯誤示范):

kapt "androidx.room:room-compiler:${rootProject.room_version}"
轉成
annotationProcessor "androidx.room:room-compiler:${rootProject.room_version}"
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容