检查Dagger 2依赖循环的简便方法?

时间:2016-10-03 11:35:23

标签: android dependencies cycle dagger

下面。

因此,在我的项目中进行了一些重构后,我最终得到了依赖循环SOMEWHERE。我的@Provided依赖项模块很大,很难理解究竟是什么原因。

这是控制台日志: http://pastebin.com/yxDDEHgz

你可以看到它很大,并没有告诉我什么。有没有办法快速检查哪个依赖注入导致循环?

1 个答案:

答案 0 :(得分:4)

您只需要注意以[parameter: …

开头的行

如果你注意,你会看到你的周期如下:

line 16: [parameter: packagename.map.mapservice.IMapService mapService]

line 13: [parameter: packagename.lib.common.IApplicationVisibility mapVisibility]

line 9: [parameter: packagename.lib.notifications.INotificationSettings notificationSettings]

line 7: [parameter: packagename.map.mapcontent.MarkerClickHandler markerClickHandler]

line 5: [parameter: packagename.map.mapservice.IMapService mapService]

在这里你尝试重新注入IApplicationVisibility所以循环就在这里:

line 3: [injected field of type: packagename.lib.common.IApplicationVisibility applicationVisibility]

IMapService - > IApplicationVisibility - > INotificationSettings - > MarkerClickHandler - > IMapService(再次IMapService !!!) - > IApplicationVisibility

您在IMapService中再次注入MarkerClickHandler,开始周期 !!