Android Dagger 2.10子部件发生器-喷油器验证失败
我正在尝试创建一个注释处理器,它将把我的MVP视图(片段)处理为自动生成的子组件(类似于,但适用于新的Dagger 2.10 android注入器) 到目前为止,我已经能够生成适当的文件,但是在编译生成的组件时出现了一条奇怪的错误消息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
错误:(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项目的一部分。我正在做一个关于调试问题的小更新。