添加 Kapt 插件后 - 执行时发生故障 org.jetbrains.kotlin.gradle.internal.KaptExecution
After adding Kapt plugin - A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptExecution
首先,
我很清楚这里已经发布了很多关于此错误的问题,其中 none 似乎有合适的解决方案,尤其是我需要的解决方案。
我被以下错误困扰了一个多星期。
我正在开发一个 android 项目,该项目正在使用 Kotlin、MVVM、Clean Arch 和导航组件构建。
我最近添加了领域数据库,为此我不得不添加以下插件。
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
我认为真正的问题是从这里开始的。
(之后我添加了一个 DatabaseManager class,它利用我编写的一些领域扩展函数来进行数据库操作。)
此后编译项目时,整体出现如下错误
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 class,它没有改变,似乎没有任何错误或拼写错误。 我非常确定 kapt 注释处理器在这里做了一些我似乎没有弄清楚的肮脏工作。
如果我能克服这个奇怪的错误,我会大大松一口气。
补充说明:
我把整个项目分成了三个模块。这三个都有 kapt 插件(以防万一)
我用 Koin 做 DI
希望有人能帮帮我!
经过一周的努力,我终于找到了问题。
我为领域添加了 kotlin-kapt
插件。
我有一个名为 interface
的文件夹,它本身用于保存一些接口。
我在 MainActivity 的界面文件夹中实现了其中一个界面。
现在界面的 import
是这样的,
import com.android.app.java.interface.Listener
其中,关键字interface
混淆了注释处理器,因此在生成存根时导致错误。
我重命名了文件夹(从 interface
到 intrface)。
解决了错误。
这是一个非常简单的错误,让我损失了一周的时间。
总之,找到问题了。耶!
我遇到了同样的问题,因为我忘记在实体中包含的列表中添加转换器。在房间中,您必须添加转换器才能将列表存储在数据库中
我遇到了类似的问题,并且一直在努力寻找问题所在。我找到了另一个线程,您可以 运行 分析 -> 检查代码来查找问题,但这对我不起作用并且没有显示任何内容,但显然其他人已经成功了。
我的问题最终出在我的数据库上(我使用的是 Room),解决方法只是删除我在 DAO 中的插入函数上的“暂停”..
我通过查看 java 生成的代码文件夹发现了这个问题。查看所有使用“_Impl”生成的数据库文件。该错误以红色突出显示,然后我可以从这里推断出出了什么问题(虽然我不知道为什么 Android Studio 不能只在构建输出中向我显示该错误:/)
祝你好运!那些 kapt 错误是最糟糕的
正在替换
kapt "android.arch.persistence.room:compiler:$room_version"
来自
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
也可能会修复它。
我遇到了同样的问题。我忘记在我的房间数据库中添加 @Dao
注释
我在带有 Long
个参数的方法上添加了 @Delete
注释:
@Delete
fun deleteRelationShip(userId: Long, friendId: Long)
--debug
build 在大多数情况下都有帮助。在这种情况下,它表示无法在 Element
中转换 long
然后变成
@Delete
fun deleteRelationShip(relationShip: RelationShip)
对我来说,当我重写 dao class 它解决了问题
检查模型数据库中的字段
也许你有 val,像这样更改为 var:
open class User(var id: Int?= null,
var name: String? = null,
var lastName: String? = null): RealmObject()
如果在应用程序中使用了 Room,则可能与房间相关 classes 中添加的一些错误有关。我有同样的错误,花了几个小时才弄清楚这个问题。我在 @Database(entities=[...])
的实体会话中给出了错误的 class 名称
我遇到了同样的问题,但我所做的是将所有依赖项更新到最新版本,这对我有用
对我来说有什么帮助
将 apply plugin 'kotlin-kapt'
替换为
plugins{ id 'kotlin-android' id 'kotlin-kept'}
仅评论应用插件就足够了,仍然要摆脱警告和 kotlin-android-extensions 我必须重写一些代码以不使用 syntetic 类.
首先,
我很清楚这里已经发布了很多关于此错误的问题,其中 none 似乎有合适的解决方案,尤其是我需要的解决方案。
我被以下错误困扰了一个多星期。
我正在开发一个 android 项目,该项目正在使用 Kotlin、MVVM、Clean Arch 和导航组件构建。
我最近添加了领域数据库,为此我不得不添加以下插件。
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
我认为真正的问题是从这里开始的。
(之后我添加了一个 DatabaseManager class,它利用我编写的一些领域扩展函数来进行数据库操作。)
此后编译项目时,整体出现如下错误
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 class,它没有改变,似乎没有任何错误或拼写错误。 我非常确定 kapt 注释处理器在这里做了一些我似乎没有弄清楚的肮脏工作。
如果我能克服这个奇怪的错误,我会大大松一口气。
补充说明:
我把整个项目分成了三个模块。这三个都有 kapt 插件(以防万一)
我用 Koin 做 DI
希望有人能帮帮我!
经过一周的努力,我终于找到了问题。
我为领域添加了 kotlin-kapt
插件。
我有一个名为 interface
的文件夹,它本身用于保存一些接口。
我在 MainActivity 的界面文件夹中实现了其中一个界面。
现在界面的 import
是这样的,
import com.android.app.java.interface.Listener
其中,关键字interface
混淆了注释处理器,因此在生成存根时导致错误。
我重命名了文件夹(从 interface
到 intrface)。
解决了错误。
这是一个非常简单的错误,让我损失了一周的时间。
总之,找到问题了。耶!
我遇到了同样的问题,因为我忘记在实体中包含的列表中添加转换器。在房间中,您必须添加转换器才能将列表存储在数据库中
我遇到了类似的问题,并且一直在努力寻找问题所在。我找到了另一个线程,您可以 运行 分析 -> 检查代码来查找问题,但这对我不起作用并且没有显示任何内容,但显然其他人已经成功了。
我的问题最终出在我的数据库上(我使用的是 Room),解决方法只是删除我在 DAO 中的插入函数上的“暂停”..
我通过查看 java 生成的代码文件夹发现了这个问题。查看所有使用“_Impl”生成的数据库文件。该错误以红色突出显示,然后我可以从这里推断出出了什么问题(虽然我不知道为什么 Android Studio 不能只在构建输出中向我显示该错误:/)
祝你好运!那些 kapt 错误是最糟糕的
正在替换
kapt "android.arch.persistence.room:compiler:$room_version"
来自
implementation "androidx.room:room-runtime:$room_version"
kapt "androidx.room:room-compiler:$room_version"
也可能会修复它。
我遇到了同样的问题。我忘记在我的房间数据库中添加 @Dao
注释
我在带有 Long
个参数的方法上添加了 @Delete
注释:
@Delete
fun deleteRelationShip(userId: Long, friendId: Long)
--debug
build 在大多数情况下都有帮助。在这种情况下,它表示无法在 Element
然后变成
@Delete
fun deleteRelationShip(relationShip: RelationShip)
对我来说,当我重写 dao class 它解决了问题
检查模型数据库中的字段 也许你有 val,像这样更改为 var:
open class User(var id: Int?= null,
var name: String? = null,
var lastName: String? = null): RealmObject()
如果在应用程序中使用了 Room,则可能与房间相关 classes 中添加的一些错误有关。我有同样的错误,花了几个小时才弄清楚这个问题。我在 @Database(entities=[...])
的实体会话中给出了错误的 class 名称我遇到了同样的问题,但我所做的是将所有依赖项更新到最新版本,这对我有用
对我来说有什么帮助
将 apply plugin 'kotlin-kapt'
替换为
plugins{ id 'kotlin-android' id 'kotlin-kept'}
仅评论应用插件就足够了,仍然要摆脱警告和 kotlin-android-extensions 我必须重写一些代码以不使用 syntetic 类.