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

Android 添加Kapt插件后-执行org.jetbrains.kotlin.gradle.internal.KaptExecution时发生故障,android,kotlin,mvvm,realm,kapt,Android,Kotlin,Mvvm,Realm,Kapt,首先, 我非常清楚,关于这个错误的很多问题已经在这里发布了,而且似乎没有一个有正确的解决方案,尤其是我需要的解决方案 我被以下错误困扰了一个多星期 我正在从事一个android项目,该项目正在使用Kotlin、MVVM、Clean Arch和导航组件构建 我最近添加了realm数据库,为此我必须添加以下插件 apply plugin: 'kotlin-kapt' apply plugin: 'realm-android' 我想真正的问题是从这里开始的 (之后,我添加了一个DatabaseMa

首先,

我非常清楚,关于这个错误的很多问题已经在这里发布了,而且似乎没有一个有正确的解决方案,尤其是我需要的解决方案

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

我正在从事一个android项目,该项目正在使用Kotlin、MVVM、Clean Arch和导航组件构建

我最近添加了realm数据库,为此我必须添加以下插件

apply plugin: 'kotlin-kapt'

apply plugin: 'realm-android'
我想真正的问题是从这里开始的

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

当我在此之后编译项目时,总体上发生了以下错误

A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
以及以下内容

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
它指向我的MainActivity类,它是不变的,似乎没有任何错误或打字错误我非常确定kapt注释处理器在这里做了一些我似乎没有弄清楚的肮脏工作。

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

补充说明:

  • 我将整个项目分为三个模块。所有三个都有kapt插件(以防万一)

  • 我用Koin表示DI


  • 希望有人能帮助我

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

    我为realm添加了
    kotlinkapt
    插件

    我有一个名为
    interface
    的文件夹来保存一些接口

    我从MainActivity的interface文件夹中实现了一个接口

    现在接口的
    import
    是这样的

    导入com.android.app.java.interface.Listener

    其中,关键字
    接口
    混淆了注释处理器,因此在生成存根时导致错误

    我重命名了文件夹(从
    接口
    到intrface)

    这就解决了错误

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


    无论如何,我发现了问题。耶

    我也有同样的问题,因为我忘了在实体中包含的列表中添加转换器。在房间中,您必须添加转换器才能将列表存储在数据库中

    我也有类似的问题,并且一直在尝试查找问题。我发现了另一个线程,您可以运行Analyze->Inspect代码来查找问题,但这对我来说不起作用,也没有显示任何内容,但显然其他人在这方面取得了成功

    我的问题最终与我的数据库有关(我使用的是Room),修复的问题只是删除我在DAO中的insert函数上的“挂起”

    我通过查看java生成的代码文件夹发现了这个问题。查看使用“\u Impl”生成的所有数据库文件。错误以红色突出显示,然后我可以从这里推断出出哪里出了问题(尽管我不知道为什么Android Studio不能在构建输出中向我显示该错误:/)

    祝你好运!这些kapt错误是最严重的

    kapt "android.arch.persistence.room:compiler:$room_version"
    


    可能也能解决。

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

    我在带有
    Long
    参数的方法上添加了
    @Delete
    注释:

    @Delete
    fun deleteRelationShip(userId: Long, friendId: Long)
    
    --debug
    构建在大多数情况下都有帮助。在本例中,它表示long不能在元素中转换

    然后就变成了

    @Delete
    fun deleteRelationShip(relationShip: RelationShip)
    

    对我来说,当我重写dao类时,它解决了问题

    检查模型数据库中的字段 可能您有val,更改为var如下:

    open class User(var id: Int?= null,
                var name: String? = null,
                var lastName: String? = null): RealmObject()
    

    如果应用程序中使用了Room,则可能与Room相关类中添加的某些错误有关。我也犯了同样的错误,花了几个小时来解决这个问题。在@Database(entities=[…])的entities会话中,我给出了错误的类名。

    我也有同样的问题,但我所做的是将所有依赖项更新到最新版本,这对我来说很有效。

    实际上这是重要的一点,没有人能注意到,我遇到了这个问题,搜索了很多次,直到找到了答案。。谢谢你检查你的Dao课程。从java转换时,可能会在名称以“get”开头的方法上出错。好吧,请不要使用上面提到的蹩脚名称。对于realm any solution,我面临着同样的问题?@Arbaz。您面临的错误是什么?在哪个文件中?您是否将kotlin关键字作为文件/包名?actull整个领域是停止的working@Arbaz.in请张贴错误。停止工作了?太好了我也有同样的问题,tnx
    open class User(var id: Int?= null,
                var name: String? = null,
                var lastName: String? = null): RealmObject()