问题标签 [annotation-processor]

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 投票
0 回答
60 浏览

java - Types.isSameType 为两个不同的类型元素返回 true

虽然listType = java.util.List<E>thisType = User但我仍然得到isSame = true

这里发生了什么?

0 投票
2 回答
4091 浏览

android - 注释处理器不工作 - 没有创建文件

我现在已经搜索了为什么我自己的注释处理器不能在我的一个项目中工作的原因。设置如下所示:

  • 安卓工作室 2.3.3
  • gradle 构建工具 2.3.3
  • 注释处理器在 android studio 中启用

我尝试了常见的解决方案:

  • 从 Android Studio 最近删除我的项目
  • 使缓存无效并重新启动android studio
  • 再次将我的项目导入android studio(确保之前启用了注释处理)

没有什么帮助。我在另一个项目中进行了注释处理,并将其与这个项目进行了比较。唯一的区别是我在另一个项目中使用了 kotlin。所以我只是在我的新项目中添加了以下内容:

Kotlin 和apply plugin: 'kotlin-android'突然注释处理工作。为什么?我还没有找到任何关于此的信息,但在我的情况下,注释处理不再起作用(在较旧的 android 版本中它确实如此,但不确定它何时中断)而不应用kotlin插件......

据我所知,我不必应用注释处理器插件,对吗?我还缺少其他东西吗?

示例build.gradle

0 投票
0 回答
487 浏览

android - 没有生成匕首类

我一直在尝试在我的应用程序中包含 Dagger 最新版本 dagger-android:2.11。但是,没有生成像 DaggerAppComponent 这样的 Daggerclaase。

以下是我的应用级别 gradle

我的组件界面

我的模块类

该应用程序正在正确构建,但是当我尝试创建 AppComponent 对象时,DaggerAppComponent 只是不可用。

我在设置中启用了注释处理,然后才创建了这个应用程序。

我也试过'com.neenbedankt.android-apt'插件。这对我也不起作用。

这对我来说就像在这里尝试的任何选项一样。请帮忙。

0 投票
1 回答
1293 浏览

maven - Kotlin-Kapt 注释处理器不适用于 maven

我想从 kotlin 实体类生成 jpa querydsl 文件。

网上有一个很好的例子,说明如何使用 gradle https://github.com/JetBrains/kotlin-examples/blob/master/gradle/kotlin-querydsl/build.gradle生成 dsl 文件。

但是我试图在 Maven 中实现这一点并且没有运气。我现在的pom在下面。有人知道问题可能是什么吗?提前致谢。

0 投票
0 回答
569 浏览

java - Java注解处理——获取构造函数值

是否可以在注释处理器中获取枚举常量的构造函数参数的值?

我有一个枚举,它定义了一个构造函数并被扫描,因为它也被注释了。

我希望能够获得常量定义的构造函数参数的值(即实际上知道常量 FOO 是用“foo 值”初始化的)。这可能吗?

我可以找到每个常量,但没有封闭的元素,因此TypeElement枚举常量的实际值似乎是行尾。

任何帮助都会很棒!

0 投票
1 回答
827 浏览

java - 如何在 Gradle Java 库项目构建脚本中指定 buildConfigField

在我的 Android 项目中,我可以指定 Gradle 常量,如下所示:

并像这样在我的 Android 应用程序中访问它们:-

如何在 Java 库 Gradle 构建脚本中获得相同的功能?

更准确地说,我正在开发一个自定义注释处理器作为我的 Android 应用程序所依赖的纯 Java 项目(库)。

我想在我的注释处理器可以访问的 Java Gradle 构建文件中定义常量。

如果这是可能的,那么我该如何实现呢?

0 投票
1 回答
154 浏览

android-studio-3.0 - 使用 ig-json-parser 和来自 android studio 3.0 的 annotationProcessor

在新版本的 gradle 中,'android-apt'-pligin 不再兼容。

现在你必须使用'annotationProcessor' instatof 'apt'

到目前为止,一切都很好。

我执行以下操作:

从 build.gradle 中删除 apt 的类路径(项目:MyApplication)

从 build.gradle 中移除插件(模块:app)

将依赖项从 apt 更改为新的 annotationProcessor

gradle sync 到目前为止工作,但 *__JsonHelper 不再是beeing genradet!

帮助?

0 投票
3 回答
3396 浏览

java - 如何使用注释处理器配置 Gradle 的增量构建

我想在构建过程中使用 QueryDSL 注释处理器。每次更改任何类时,如何摆脱不必要的注释处理器编译和运行?我希望 QueryDSL 仅在更改某些相关类时才生成 Q-* 类。

这个始终运行的注释处理器对我们的构建过程时间有负面影响,如果必须运行注释处理器,增量构建似乎不起作用。

谢谢你。

0 投票
0 回答
482 浏览

java - java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Hex.encodeHexString([B)Ljava/lang/String

我在我的模块中包含了 legacy.jar

在此处输入图像描述

并在应用程序依赖项中添加了该模块,添加了android注释处理器库(annotationProcessor'android.arch.persistence.room:compiler:1.0.0') https://developer.android.com/topic/libraries/architecture/adding-组件.html

运行项目后显示以下错误

错误:任务“:任务”执行失败。java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Hex.encodeHexString([B)Ljava/lang/String;

在此处输入图像描述 但是在删除注释处理器库项目后运行成功。

我不确定为什么会发生此错误。

下面是我的 myModule & app 的两个 Gradle 文件

myModule Gradle 文件

应用 Gradle 文件

0 投票
3 回答
4860 浏览

android - 带有数据绑定的房间注释处理器

我在现有代码中使用了数据绑定,现在我正在迁移到 Room 以实现持久性。我已经按照Florina 的博客中提到的步骤来寻找房间

当我删除房间依赖项时,我的代码构建良好,没有 java 代码错误或 BR 相关错误

它也运行,但给出运行时异常说 database_Impl 不存在。因为它无法生成那个文件。

但是在我把注释处理器放回去之后,它给了我

我使用的 gradle 插件是com.android.tools.build:gradle:3.0.1

他们俩似乎没有一起工作

到目前为止采取的步骤:

  1. 将 BaseObservable 更改为 Observable 如此处所建议
  2. 将 Android Studio 更新到 3.0.1
  3. 尝试使用 gradle latest plugin canary 6
  4. 清除,清除缓存也完成

有没有人一起使用房间和数据绑定?