添加 Kapt 插件后 - 执行 org.jetbrains.kotlin.gradle.internal.KaptExecution 时发生故障

Mus*_*ode 9 android mvvm realm kotlin kapt

首先,

我非常清楚这里已经发布了很多关于此错误的问题,但似乎没有一个有适当的解决方案,尤其是我需要的解决方案。

我被以下错误困扰了一个多星期。

我正在开发一个使用 Kotlin、MVVM、Clean Arch 和导航组件构建的 android 项目。

我最近添加了领域数据库,为此我不得不添加以下插件。

apply plugin: 'kotlin-kapt'

apply plugin: 'realm-android'
Run Code Online (Sandbox Code Playgroud)

我认为真正的问题是从这里开始的。

(之后我添加了一个 DatabaseManager 类,它使用了我编写的一些领域扩展函数来进行数据库操作。)

在此之后编译项目时,整体出现以下错误。

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
Run Code Online (Sandbox Code Playgroud)

连同以下

FAILURE: Build failed with an exception.

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

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 7s
30 actionable tasks: 6 executed, 24 up-to-date
Run Code Online (Sandbox Code Playgroud)

它指向我的 MainActivity 类,该类未更改,并且似乎没有任何错误或拼写错误。我非常确定 kapt 注释处理器在这里做了一些我似乎没有弄清楚的肮脏工作。

在此处输入图片说明

如果我能克服这个奇怪的错误,我会感到非常欣慰。

补充说明:

  1. 我将整个项目分成了三个模块。这三个都得到了 kapt 插件(以防万一)

  2. 我使用 Koin 进行 DI

希望有人能帮帮我!

Mar*_*nge 10

更换

kapt "android.arch.persistence.room:compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)

经过

implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
Run Code Online (Sandbox Code Playgroud)

也可能会修复它。


jav*_*smh 5

我有同样的问题。我忘了@Dao在我的房间数据库中添加注释


Mus*_*ode 4

经过一周的努力,我终于找到了问题所在。

我添加了kotlin-kapt plugin for realm.

我有一个名为interface itself to hold some interfaces.

我实现了 MainActivity 中接口文件夹中的接口之一。

现在import界面是这样的,

import com.android.app.java.interface.Listener

哪里,关键字interface confused the annotation processor, hence caused error while generating stub.

我重命名了该文件夹(从interface to intrface).

这解决了错误。

这是一个非常简单的错误,却让我花了一周的时间。

不管怎样,找到问题了。耶!