问题标签 [kapt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
817 浏览

java - 使用 kapt 时,Realm 未在 Java/Kotlin 项目中生成 RealmProxy 类

我正在尝试将领域集成到 Java/Kotlin 项目中,但即使是 .java 文件,kapt 也不会生成 RealmProxy 类

我因此更新了领域但仍然无法正常工作

Gradle 应用程序文件:

项目文件:

Java模型文件:

Kotlin 模型文件:

0 投票
0 回答
1466 浏览

android - :app:kaptDebugKotlin 运行单元测试时出错

我一直在尝试 Kotlin 并实现一个应用程序。到目前为止,运行该应用程序运行良好,但我无法运行单元测试。

安卓工作室:2.3.3

这是我的 Gradle 设置:

build.gradle(项目)

build.gradle(模块)

错误信息:

我试过的:

我认为 Kotlin 不能顺利地与某些库一起使用,并且需要努力修复它。如果我不能使单元测试比使用 Kotlin 的 Java 更容易,我不想使用 Kotlin 但想进行更多实验。我会感谢你的帮助。

0 投票
2 回答
2181 浏览

kotlin - 在使用 Android 数据绑定和 Kotlin 的自定义 BindingAdapter 中使用 lambda

我正在尝试使用 Kotlin 为 Android 数据绑定的 lambda 处理程序进行自定义绑定。只要我的 ViewModel 处理程序显式返回 Void,它就可以正常工作。但如果它返回 Kotlin Unit,我会得到一个error: cannot generate view binders java.lang.StackOverflowError.

一切似乎都正确连接,因为所有其他自定义绑定都有效(convertBooleanToViewVisibility、toTestString 甚至 customOnClick,只要我调用 onClickVoid [参见下面的示例])。

问题是当我试图在我的应用程序中调用返回 Unit 的 lambda 时:customOnClick 而不是返回 Void。在下面的示例中,它是调用mainViewModel.onClick()而不是mainViewModel.onClickVoid(). 必须有一种方法可以使其工作,因为 android:onClick 能够调用该Unit版本。但是,如果我对 customOnClick 调用 onClick 使用相同的语法,我会收到此错误:

知道如何让它与 Unit 一起工作,这样我就不需要更改我的 ViewModel 来显式返回 Void?对于我所有的处理程序?

示例项目

项目构建.gradle

模块(应用程序)build.gradle

MainActivity.kt

主视图模型.kt

绑定.kt

activity_main.xml

0 投票
1 回答
1323 浏览

java - kotlin 注释处理器中的可空类型

我正在为 Kotlin 开发注释处理器,因为处理的元素是在 Java 中,所以我没有收到可空值,?而是使用@Nullable注释,这很好,但是我在接收类型和高阶函数中的空参数时遇到了问题, 对于正常参数。

我将在其注释中收到java.lang.String处理过程。@org.jetbrains.annotations.Nullable

但是List<String?>例如将返回我java.util.List<java.lang.String>而不在主元素中而不在类型参数中没有任何注释,这会导致未知的可空性状态

我试图用javax.lang.model.util.Types找到某种结果,但什么也没有。

我现在使用的一些代码:

所有帮助将不胜感激。

0 投票
1 回答
1439 浏览

kotlin - Kotlin 注释处理器:无法使其工作

我的 gradle 构建:

处理器不在单独的模块中。

处理器什么都不做,#process它只是简单地抛出,看看它是否在工作。

但绝对没有任何反应。没有错误,什么都没有。我怎样才能让它工作?

0 投票
3 回答
4248 浏览

android - Kapt 不在 Instant 应用功能模块中生成类

我在我的 android 应用程序中使用 dagger2。即使没有错误,它也不会生成匕首组件类。

我已经在设置中启用了注释处理器并重新启动了我的 android studio 但这对我不起作用。我也读过这个线程Dagger2 没有生成 Daggercomponent 类并在一个apt已弃用的线程上读取,所以我正在使用annotationProcessor

基本模块 build.gradle

电视功能 build.gradle

项目构建.gradle

网络组件.kt

apt在 apt 目录中生成 dagger 类,但即使我在整个项目目录中搜索,现在也没有这样的 dagger 生成类。

在此处输入图像描述

我看到它没有生成DaggerNetComponent类,因为编译也没有错误。有谁知道可能是什么问题?

0 投票
0 回答
69 浏览

android-studio - Android Studio 无法重构“只读”kapt 生成的代码

使用 Kotlin 和 Dagger 我发现如果我尝试使用 Android Studio 的重构功能来更改,例如,在 kapt 为 Dagger 自动生成的代码中引用的类的名称(在 $buildDir/generated/source/kapt 中),重构失败,因为自动生成的代码是“只读的”。

删除构建目录是一个笨拙的解决方法。有没有可以防止问题的设置或其他东西?

0 投票
2 回答
9191 浏览

android - 使用 'kotlin-kapt' 插件,Android Studio 不提供有关 Dagger 2 的特定错误

我将 Kotlin 与 Dagger 2 一起使用。问题是,当我在实现 Dagger 时出错(例如,@Inject类构造器的错误)时,IDE 不会具体显示错误在哪里。Insead 编译器错误总是一样的:

Execution failed for task ':app:kaptDebugKotlin'. Internal compiler error. See log for more details

故意犯错的班级(@Inject 评论):

项目 build.gradle 文件:

模块 build.gradle:

0 投票
24 回答
53693 浏览

android - Room “不确定如何将 Cursor 转换为此方法的返回类型”:哪种方法?

使用Room我收到此错误,我想找出导致它的方法。

我有多个DAOs,总共大约有60个方法,并且在添加一个方法后才弹出这个错误(从另一个完美运行的方法复制并粘贴,只是将字段更改为设置)。

我可以发布整个类的DAOs,但我要求一种方法来知道哪个方法失败了。我尝试了Run with --stacktrace,Run with --info--debug option,但这些都没有显示任何有价值的信息。

我添加的方法是@Query UPDATE带有Int返回类型的,如文档中所建议的那样

UPDATE 或 DELETE 查询可以返回 void 或 int。如果是 int,则值为受此查询影响的行数。

编辑:我想补充一点,我尝试删除该方法,使 DAO 恢复工作状态,但它仍然给我这个错误。

EDIT2:添加 gradle 控制台输出,因为在评论中不可读:

0 投票
2 回答
7405 浏览

android - Kotlin 注释处理器在将 Room 与 A​​ndroid Studio 3.0 beta7 一起使用时出现编译时错误

我正在使用 Android Studio 3.0 Beta 7、Kotlin 1.4-2 和Room Persistence Library 1.0.0-beta1 编译 Android 项目。

这是我在其中添加 Room 依赖项的 Gradle 文件的一部分:

编译时出现以下错误:

警告:警告:注释处理器'android.arch.persistence.room.RoomProcessor'支持的源版本'RELEASE_7'小于-source'1.8'

将堆栈跟踪/调试标志添加到编译选项后,这是我得到的错误:

错误:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:注释处理时出错

10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 失败:构建失败并出现异常。10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] * 出了什么问题:10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 任务“:app:kaptDebugKotlin”执行失败。10:08:03.727 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] > 内部编译器错误。有关详细信息,请参阅日志 10:08:03.728 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 10:08:03.728 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * 例外是:10:08 :03.728 [错误] [org。gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException:任务':app:kaptDebugKotlin'的执行失败。10:08:03.728 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) 10:08:03.728 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 10:08:03.728 [错误] [org.gradle.internal.buildevents .BuildExceptionReporter] 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63) 10:08:03.728 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle。 api.internal。DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99) 10:08:03.729 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java: 63) 10:08:03.729 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) 10:08:03.729 [错误] [ org.gradle.internal.buildevents.BuildExceptionReporter] 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 10:08:03.729 [错误] [org.gradle.internal.buildevents.BuildExceptionReporter]原因:org.gradle.api.GradleException:内部编译器错误。有关更多详细信息,请参阅日志 10:08:03.729 [错误] [org.gradle.internal.buildevents.https://help.gradle.org 10:08:03.730 [错误] [org.gradle.internal.buildevents.BuildResultLogger] 10:08:03.730 [错误] [org.gradle.internal.buildevents.BuildResultLogger] 内置失败8s

清理/重建没有帮助。什么可能导致此错误?临时解决方案似乎是用标准的“annotationProcessor”替换“kapt”,重建然后用“kapt”再次构建。但在项目进一步更改后,错误再次出现。

[编辑]

我的 Gradle 文件(应用程序模块):

Gradle(项目模块):