Dagger 1和Dagger 2程序包名称冲突 [英] Dagger 1 and Dagger 2 package names conflict

查看:60
本文介绍了Dagger 1和Dagger 2程序包名称冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆