Android 添加Kapt插件后-执行org.jetbrains.kotlin.gradle.internal.KaptExecution时发生故障
首先, 我非常清楚,关于这个错误的很多问题已经在这里发布了,而且似乎没有一个有正确的解决方案,尤其是我需要的解决方案 我被以下错误困扰了一个多星期 我正在从事一个android项目,该项目正在使用Kotlin、MVVM、Clean Arch和导航组件构建 我最近添加了realm数据库,为此我必须添加以下插件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
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注释处理器在这里做了一些我似乎没有弄清楚的肮脏工作。
如果我能克服这个奇怪的错误,我会感到非常欣慰
补充说明:
希望有人能帮助我 经过一周的努力,我终于找到了问题所在 我为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()