Dagger 1和Dagger 2程序包名称冲突 [英] Dagger 1 and Dagger 2 package names conflict
问题描述
我有一个Android项目,其中一个3rd party库依赖于 Dagger 1
,而我的项目依赖于 Dagger 2
.
I have an Android project in which one 3rd party library depends on Dagger 1
and my project on Dagger 2
.
Dagger 1和2具有相同的程序包名称,因此我的应用程序运行正常,但是由于dagger 2覆盖了dagger 1程序包,因此第3方库无法正常工作.
Dagger 1 and 2 have the same package names so my app is working fine, but 3rd party library is not working because of overriding dagger 1 package by dagger 2.
将Dagger 2的软件包名称更改为 dagger2
而不是 dagger
是不可行的,因为注释编译器会生成具有静态软件包名称 dagger
.
Changing the package name of Dagger 2 to dagger2
instead of dagger
is not an option because annotation compiler is generating classes with static package name dagger
.
有解决冲突的方法吗?
推荐答案
在第3方库jar上使用jarjar,或者至少在匕首部分使用.这会将dagger代码(和所有引用)移入其自己的程序包中.在注释处理器运行之后,它应该捕获所有代码.
Use jarjar on the 3rd party library jar, or at least the dagger parts. That will move the dagger code (and any references) into its own package. As that is happening after the annotation processor has run it should catch all the code.
这篇关于Dagger 1和Dagger 2程序包名称冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!