问题标签 [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 投票
2 回答
2771 浏览

android - 具有新 dataBinding 导入的 Android Studio 3.2.1 无法编译

我该如何解决这个问题?我在我的 macOS 上安装了一个新的 Android Studio,我想导入 dataBinding e 来学习有关这项技术的教程。但是当我导入依赖项并构建时,会显示以下错误。

(Android Studio 3.2.1 Build #AI-181.5540.7.32.5056338,构建于 2018 年 10 月 8 日 JRE:1.8.0_152-release-1136-b06 x86_64 JVM:OpenJDK 64-Bit Server VM by JetBrains sro macOS 10.14.1)

我使用以下 app.gradle 创建了一个新项目和 Empty Activity,但错误仍然存​​在。有必要卸载Android Studio吗?

0 投票
1 回答
3152 浏览

android - Android - 使用 gradle 3.2.1 构建数据绑定和 kapt 失败

我遇到了数据绑定和 kapt 的问题我正在使用带有 Android Studio 3.2.1 的 kotlin 问题是当我使用 kapt(我想如果我想使用 DBFlow 就必须使用它)时,构建失败。

我已经尝试了几种我发现的解决方案,例如使缓存无效并重新启动或清理项目并重建它,添加或删除 kapt 'com.android.databinding:compiler:3.1.4' 但将其添加到最新版本中显然是无用的卡普特

这是项目的gradle文件

以及应用程序的 gradle 文件

当应用程序正在构建时,它无法在 DataBinderMapperImpl 类中找到 BindingImpl 类

[编辑]

我有这个错误没有添加该行:

添加 kapt "com.android.databinding:compiler:$android_plugin_version" 后:

您知道导致此问题的原因是什么吗?

0 投票
1 回答
476 浏览

gradle - 更改 KAPT 类生成路径

我想指示我的 Kotlin 注释处理器更改生成的类的输出目录。

我想从我的 Gradle 构建脚本中更改kapt.kotlin.generated参数。我尝试了以下方法无济于事。

  1. 不起作用,路径不会改变

    kapt { arguments { arg("kapt.kotlin.generated", new File('path')) } }

  2. 不起作用,路径不会改变

    kapt { javacOptions { option("kapt.kotlin.generated", new File('path')) } }

  3. 不起作用,构建时出现 NullPointerException

    kapt { javacOptions { option("-Akapt.kotlin.generated", new File('path')) } }

使用字符串路径而不是文件时,所有三个结果都相同。

我很茫然,任何帮助将不胜感激。

0 投票
2 回答
4751 浏览

android - e: [kapt] 'com.sun.tools.javac.util.Context' 类找不到('tools.jar' 在插件类路径中不存在)。卡普不会工作

我的项目之前一直运行良好,直到我升级到API 28并重构为Androidx. 首先我认为我必须解决问题代码,因为重构后未解决的参考代码太多。在我解决了很多问题后,我仍然收到错误

所以从gradle控制台我得到这样的错误

从那个错误中,我得到这样的错误

所以,我认为这是我的代码无法编译成功的问题

这是我的build.gradle

build.gradle(应用程序)

0 投票
0 回答
247 浏览

gradle - kaptKotin 目录未标记为 Generated Source Root b Idea Gradle 插件

我自己创建了一个注释处理器,它通过 Kotlin Poet 生成 Kotlin 文件。生成build/generated/source/kaptKotlin/debug的未标记为Generated Source Directory

我尝试将生成的源调试目录标记为Generated Source Root. 但是每次我刷新 Gradle 时它都不会被标记。

另外,我也尝试过添加IDEA plugingradle。但是调试目录仍然没有标记。

目录未标记

0 投票
0 回答
262 浏览

android - 更新 Kotlin 版本后出现 Kapt 错误:java.lang.NoSuchFieldError: CONTENT_ROOTS

将 Kotlin 版本从 1.2.51 更新到 1.3.11 后,出现编译错误 (kaptGenerateStubsDebugKotlin FAILED)。

我也尝试过最新版本(比 1.2.51 更新),但我遇到了同样的问题。

0 投票
2 回答
322 浏览

java - Kotlin 不识别 Java 保留关键字

我在 Kotlin 中使用 Java 的保留关键字时遇到问题。由于并非所有保留关键字在 Kotlin 中都可用,因此 Kotlin 编译器无法(不是吗?)检测仅在 Java 中存在的保留关键字。

例如,以 为例default。它是 Java 保留关键字。这意味着您不能执行以下操作。

但是,它不是 Kotlin 中的保留关键字,因此您可以按如下方式使用它

对于不懂 Java 的人来说,很难知道它们是保留关键字。由于 Kotlin 编译器不会给您错误或任何类型的警告您正在使用保留关键字,因此它可能会在以后导致一些您不会预料到的问题。

它可能遇到的问题之一是在AnnotationProcessingkapt期间,这是您使用或包含在 gradle 中的库annotationProcessor。例如,当您尝试获取UserKotlin类的字段时,Kotlin 使用 Java 编译器,您会得到一个空列表,因为 Java 编译器不“理解”该字段default并忽略它(跳过它?)。

现实生活中的示例是,如果您使用Room库并拥有如下实体

房间注释处理器将生成一个 SQLite 创建查询

所以,它基本上跳过了这个default领域。

当我尝试使用 Java 保留关键字时,Kotlin 是否会发出警告?还是 Kotlin 中的一个尚未修复的错误?或者是否有任何文档提到了这个问题。

如果我了解 Java,那么我可能不愿意使用这些关键字,因为我知道这些关键字在 Java 中是保留的。但是,如果我不了解 Java 并且无法弄清楚问题所在怎么办?

0 投票
2 回答
3453 浏览

android - e: [kapt] 发生异常:java.lang.IllegalArgumentException: intcannot be convert to an Element

我正在尝试在我的 android 应用程序中实现 Room。我正在尝试从 API 获取数据并将它们保存在本地数据库中。但是当我运行应用程序时发生了这个错误

e: [kapt] 发生异常:java.lang.IllegalArgumentException: intcannot be convert to an Element

这是我的数据库类:

这是我的存储库:

这是我的 userDao

我的登录视图模型:

也发生此错误:

org.gradle.api.tasks.TaskExecutionException:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor 的任务 ':app:kaptDebugKotlin' <30 内部调用> 执行失败$Worker.run(ThreadPoolExecutor.java:617)<1 internal call> at java.lang.Thread.run(Thread.java:745) 原因:org.gradle.api.GradleException:编译错误。有关更多详细信息,请参阅 org.jetbrains.kotlin.gradle.internal.KaptWithKotlincTask.compile(KaptWithKotlincTask.kt:79)<17 internal 的 org.jetbrains.kotlin.gradle.tasks.TasksUtilsKt.throwGradleExceptionIfError(tasksUtils.kt:16) 的日志来电> ...33 更多

0 投票
0 回答
288 浏览

kotlin - 如何在 kotlin-maven-plugin 中指定 annotationProcessPath 的生成路径?

我在 kotlin-maven-plugin 中使用 hibernate-jpamodelgen 作为静态 jpa 生成器。但是它找不到原始类。

经过检查,我发现在那种情况下,在 generate-source/kapt.xml 中生成了实体。在 kaptStubs 目录中生成的所有其他类。没有 kapt 它工作正常。

输出选项不起作用。如何将输出目录更改为一致性?

谢谢你,伊琳娜

0 投票
1 回答
528 浏览

kotlin - 如何使 kapt 与 jpa 一起使用

Maven 在编译器尝试生成 jpa 实体时失败。

这两个类都存在。Gender 类存在于 kaptStubs 目录中,Gender_ 存在于 kapt 目录中。

起居室: