- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
对于插桩测试,我有一个创建 TestComponent
的 TestApplication
,但不再生成该文件(Error:/xxx/TestApplication.java: 16: 无法解析 import.xxx.DaggerTestApplicationComponent
)。我无法确定根本原因。我尝试了不同的 Android Studio(2.2、2.1.2)、不同的 gradle 插件(2.2.0-alpha6、5、4)和不同版本的 Dagger (2.2 到 2.6)。
我应该使用 androidTestAnnotationProcessor
吗? (以前不是这样的)
编辑:要使用 dagger 2.6,需要添加 classpath 'com.google.guava:guava:19.0'
更新:模块
有问题,因此无法创建组件
。但是,使用 jack(即使有调试选项),我看不出问题所在。现在,恢复到 java 7,gradle 插件 2.1.2。这样,无需指定哪个 guava 版本,并且可以使用所有最新的库(dagger 2.6、butterknife 8.2.1、apt 1.8)
最佳答案
我在使用 Dagger 2.9 时遇到了同样的问题。 compileDebugAndroidTestSources
已成功完成,但 Dagger*Component
没有生成。
经过大约一个小时的努力,我找到了这个问题,最后通过一些实验找到了解决方案:
添加
androidTestAnnotationProcessor 'com.google.dagger:dagger-compiler:2.9'
并执行compileDebugAndroidTestSources
再次。现在应该生成源代码(您可能必须临时注释掉对 Dagger*Component
的引用以便编译成功)如果您的图形没问题。
androidTestAnnotationProcessor
我曾经很喜欢 Dagger,但它时不时会出现一些奇怪的问题,这使它成为长期商业项目的一大风险。此外,他们仍然没有合适的文档,这使得新开发人员很难学习它。可能这不仅仅是 Dagger 的错,可能是 gradle 和 Android Studio 在问题中发挥了作用,但我正在认真考虑放弃它。
<rant>
关于android - annotationProcessor + androidTest + dagger2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38623075/
我正在使用 gradle/querydsl 和 JPA 2.1。 我想使用 APT (QEntities) 生成 querydsl 元数据。 为此,我使用了 gradle-apt-plugin 和 g
以下是我的 build.gradle 文件。我的项目在本地编译(IntelliJ-IDEA 是我的 IDE),但是当我将它推送到 GitHub 时, travis-ci 构建失败。我的 gradle
我写了一个注解处理器。用户可以传递一个选项作为处理器的参数。我也可以在我的注解处理器中读取这个参数。到目前为止一切顺利,一切都按预期进行! 但是,我收到编译器的警告,即传递给注解处理器的选项尚未被任何
我有两个带有方法的类,我想将两个类的方法合并到一个类中。 @Service("ITestService") public interface ITest1 { @Export void m
我按照 JMH 主页中的说明创建了 maven 原型(prototype)项目。我收到“注释生成器抛出异常。java.lang.NullPointerException”当我对生成的项目进行 mave
这个问题已经有答案了: 已关闭13 年前。 Possible Duplicate: Plugging in to Java compilers 编辑 - 这似乎是 Plugging in to Jav
基于 ButterKnife lib,我升级到新版本8.5.1。我用过 compile 'com.jakewharton:butterknife:8.5.1' annotationProcesso
对于插桩测试,我有一个创建 TestComponent 的 TestApplication,但不再生成该文件(Error:/xxx/TestApplication.java: 16: 无法解析 imp
我有一个使用 AnnotationProcessor 处理的类。在此过程中,我有一个 javax.lang.model.element.Element 实例,我可以在其中通过 .getSimpleNa
我希望创建一个注释,它将测试带注释的类型(可能是接口(interface))及其所有子类型,如果任何测试的类型是没有无参数构造函数的具体类,则抛出编译错误。我能够测试实际带有注释的类型,没问题。测试子
这是我在向我的 android 项目添加新的 gradle 依赖项时遇到的以下错误。而且这个错误不是项目特定的。如果我在任何其他 android 项目中添加插件,我会遇到同样的错误 Error whi
我在 IntelliJ IDEA 中创建了简单的注释处理器,添加了注释配置文件,但我不明白如何运行它。我知道注释处理器在编译时工作,但我没有在输出中看到来自注释处理器信使的任何消息。 public c
我正在使用 java 注释处理器在编译时生成其他类。使用 gradle 构建时效果很好,但我无法让 IntelliJ 识别生成的类。每当我尝试在 IntelliJ 中构建项目时,它都会出错,说它找不到
我正在尝试导入 数据库流正如 their readme 中的建议.修改项目级 build.gradle 文件并尝试同步后,出现以下错误: Error:(27, 0) Could not find me
我正在寻找一种方法来检测一个类是否是从注释处理器中的另一个类/接口(interface)继承的。由于注释处理器在源代码上运行而不是运行时,因此无法使用 reflation API,我找到的唯一方法是:
我需要创建一个自定义注释,当该注释应用于方法时,会根据各种检查检查并验证输入参数(原始和非原始)。如果检查失败应该直接返回错误消息。 在搜索时,我在创建自定义注释时遇到了 AbstractProces
我正在编写自定义 AnnotationProcessor 并且需要访问在执行期间设置为 javac 的选项:例如-详细,-s,-d 正确的做法是什么?我不认为解析“sun.java.command”系
问题: 是否可以通过注释处理器访问使用 @Target(ElementType.TYPE_USE) 注释注释的元素? 是否可以通过注解处理器访问注解类型边界? 非常感谢我错过的相关文档链接。 上下文:
我只想在我的系统应用程序中使用 bufferknife 和 drag2,我已经使用命令 mm 构建了我的应用程序。 我已经尝试了所有可能的方法,但都失败了!我只通过谷歌搜索找到了以下 Android.
我正在使用 AndroidAnnotaion,但由于 Android Studio 2.3 和 Gradle 2.3.0,他们说 android-apt 已过时。而 annotationProcess
我是一名优秀的程序员,十分优秀!