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

android-studio - Android studio 3.1 beta DataBinding 和 kapt

我正在尝试实现一个新功能“您现在可以将 LiveData 对象用作数据绑定表达式中的可观察字段”,正如文档所述https://androidstudio.googleblog.com/2017/12/android-studio-31-canary -6-is-now.html 下载 AS 3.1 beta 后,我无法编译我的项目,我收到不同的消息,例如“在项目上找不到参数 [com.android.databinding:compiler:2.3.0] 的方法 kapt()”: org.gradle.api.Project 类型的应用程序”

这是我的gradle文件:

应用程序.gradle

真的很郁闷(

0 投票
2 回答
141 浏览

kotlin - 在 kapt 中检测单例

我正在为 Kotlin 编写一个注释处理器,它需要知道如何调用方法,即是否需要构造一个类。

以下适用于 Java 代码、值和@JvmStatic-labeled 代码,但不适用于 Kotlinobject Foo {}单例:

检测是否可以在不构造类的情况下调用方法的最佳方法是什么?

0 投票
2 回答
429 浏览

annotations - KAPT(Kotlin 注释处理)是否支持 Kotlin-JS?

我看到一个例子解释了 Kotlin JVM 的 KATP,它正在工作。

我想知道它是否支持 Kotlin JS?有什么例子吗?

0 投票
1 回答
3592 浏览

android - 无法在 Kotlin 中构建注释处理器

我目前正在尝试在 Kotlin 中为 Android 编写注释处理器。项目结构如下:

项目/build.gradle

注释/build.gradle

示例/build.gradle

注释.kt

注释处理器.kt

使用 kapt 构建中断 sample:javaPreCompileDebug 并显示以下消息:

当我用 annotationProcessor 替换 kapt 时,构建在 sample:transformClassesWithInstantRunForDebug 上中断,并显示以下消息:

当我禁用即时运行时,一切正常。

我现在的问题是,我的配置哪里出错了?我遵循了这样的示例项目我看到的唯一重大区别是注释模块分为两个(运行时和编译器)。但错误消息表明 Kotlin 或 Instant Run 存在问题。

0 投票
1 回答
375 浏览

android - 每次代码更改时都会重新生成 DataBindingInfo.java

我正在开发相当大的多模块 Android 项目,该项目使用 Data Binding、Dagger 2 和 Java 与 Kotlin 混合。

在项目“代码”文件(.java 和 .kt 文件,包括活动、自定义类等)发生最细微的变化后,构建时间会很长(最多 2 分钟)。即使我添加新行之类的更改或修改注释中的一个字符,也会发生这种情况。

我确实使用 --info 参数运行了 Gradle 脚本并得到了以下提示,它“挂起”了以下任务:

任务 ':AppName:kaptDebugKotlin' 的构建缓存键是 1a3a53e5f9b0934ab50a25c0133055f2 任务 ':AppName:kaptDebugKotlin' 的最新检查耗时 0.0 秒。它不是最新的,因为:输入属性“源”文件 /Users/username/Android/project-directory/AppName/build/generated/source/dataBinding/debug/android/databinding/layouts/DataBindingInfo.java 已更改. 输入属性“源”文件 /Users/username/Android/project-directory/AppName/src/main/java/com/package/to/my/activity/SomeActivity.java 已更改。

生成的 DataBindingInfo.java 文件仅包含一个 buildId:

每次代码发生任何变化时,buildId 哈希值都会发生变化。

该项目使用 Crashlytics,但我为调试构建禁用了它。

这种行为的原因可能是什么?

编辑:即使 Android Studio 关闭并且我正在外部编辑器中进行更改并从命令行运行构建,也会在项目中重新生成 buildId。

0 投票
3 回答
975 浏览

android - Kotlin + Databinding 在输入“??”时没有可行的选择

请原谅我糟糕的英语。

我正在使用 AndroidStudio3.1.1,我尝试使用数据绑定我的项目kotlin,但是当我尝试运行项目时出现错误。我收到的错误消息如下:

e: [kapt] 发生异常:android.databinding.tool.util.LoggedErrorException: 发现数据绑定错误。****/数据绑定错误****味精:语法错误:输入'??'没有可行的替代方案 文件:/Users/eraise/Code/Demo/app/src/main/res/layout/layout_main.xml loc:20:28 - 20:64 ****\数据绑定错误****

我可以apk在终端到期命令上编译:./gradlew assembleDebug,效果很好。

我的顶级 build.gradle 具有以下配置:

我在应用程序目录中的 build.gradle(仅相关部分):

我的 layout_main.xml:

上线错误:android:text='@{"测试" + version??"unknow", default=版本号}'

LayoutMainBinding 片段:

如果不使用 kotlin,我可以正确运行

0 投票
2 回答
950 浏览

android - 解析失败:Landroid/databinding/DataBindingComponent

我的项目中有一个 kotlin android 库模块,我正在尝试使用 DataBinding 库。我正在使用 DataBindingComponent 进行一些图像加载。编译时一切正常,创建了生成的 DataBindingComponent 接口,我可以实现它并将其注入。但是,在运行时,应用程序崩溃:

从检查应用程序的 apk 和库模块的 aar 来看,似乎没有包含 DataBindingComponent。

一些代码片段:

构建.gradle

图像绑定适配器

数据绑定组件的使用

0 投票
0 回答
102 浏览

android - 如何详细描述构建 android kotlin 项目?

我有一个 android kotlin 项目,其增量构建时间非常巨大。如果我按Make project,等到构建完成并Make project再次按,则构建需要大约 50 秒,尽管我没有做任何更改。
--profile gradle 选项揭示了这一点:app:kaptDebugKotlin:app:processDebugResources花费了最多的时间(每个需要大约 20 秒)。
我怎样才能确定这是什么原因?顺便提一句。这是我的 gradle.properties

0 投票
2 回答
11678 浏览

java - 带有 Java 和 Kotlin 文件、kapt 或 annotationProcessor 的 Android 项目?

我想知道在混合JavaKotlin文件的Android项目中,我们是否必须使用 annotationProcessor 或 kapt,或两者都使用?

在我的理解中, annotationProcessor必须用于使用注解进行代码生成的Java文件,而kapt必须用于使用注解进行代码生成的Kotlin文件。

我有一个混合两种语言的项目,我只是用 kapt 替换了 build.gradle 中的所有 annotationProcessor 依赖项。令人惊讶的是,它构建并且似乎运行正确,但我不明白为什么 kapt 即使使用 Java 文件也能很好地工作......

有人可以向我解释吗?

谢谢

0 投票
2 回答
15409 浏览

android - 数据绑定注释处理器 kapt 警告

在我的应用程序模块的 build.gradle 中,我添加了

但我仍然收到编译器警告

一切正常,我只是讨厌到处发出警告。

任何帮助深表感谢!