Android Dagger 2.10子部件发生器-喷油器验证失败

Android Dagger 2.10子部件发生器-喷油器验证失败,android,annotations,generator,dagger,subcomponent,Android,Annotations,Generator,Dagger,Subcomponent,我正在尝试创建一个注释处理器,它将把我的MVP视图(片段)处理为自动生成的子组件(类似于,但适用于新的Dagger 2.10 android注入器) 到目前为止,我已经能够生成适当的文件,但是在编译生成的组件时出现了一条奇怪的错误消息 错误:(22,58)错误:@dagger.android.support.FragmentKey方法应该绑定dagger.android.androidject.Factory如果有人对解决方案感兴趣: 我发现由于某种原因,在验证生成的方法时,在项目编译时比较的C

我正在尝试创建一个注释处理器,它将把我的MVP视图(片段)处理为自动生成的子组件(类似于,但适用于新的Dagger 2.10 android注入器

到目前为止,我已经能够生成适当的文件,但是在编译生成的组件时出现了一条奇怪的错误消息


错误:(22,58)错误:@dagger.android.support.FragmentKey方法应该绑定dagger.android.androidject.Factory如果有人对解决方案感兴趣:

我发现由于某种原因,在验证生成的方法时,在项目编译时比较的
ClassType
-s的引用并不相同

尽管这些引用指向同一类,但在
EqualVisitor.visitDeclared
方法的
auto common
库中检查它们是否相等。显然,这可能是
auto common
中的一个bug,因为
visitDeclared
中的元素是通过对象引用进行比较的,而不是通过类型引用进行比较的

因此,这里的解决方法是使用
自动公共库的本地固定副本,并排除原始库的所有依赖项

//TODO think if this is the correct solution to cast both elements
//return aElement.equals(bElement)
return ((TypeElement) aElement).getQualifiedName().equals(((TypeElement) bElement).getQualifiedName())
       && equal(a.getEnclosingType(), b.getEnclosingType(), newVisiting)
       && equalLists(a.getTypeArguments(), b.getTypeArguments(), newVisiting);


我仍然需要检查为什么这些引用不相同,并且在将问题提交到
自动公共
回购之前,我必须思考如何在
自动公共
(我只使用快速修复)中正确地修复平等性检查。

@我无法帮助您,但我对您的解决方案感兴趣,如果你让它工作,你会考虑开源吗?@ ScottCooper当然,它计划作为AMF项目的一部分。我正在做一个关于调试问题的小更新。