2016-10-03 56 views
0

這裏。簡單的方法來檢查Dagger 2依賴週期?

因此,在我的項目中重構後,我已經結束了依賴週期SOMEWHERE。我與@Provided依賴關係的模塊是巨大的,真的很難理解究竟是什麼原因。

這裏是控制檯日誌: http://pastebin.com/yxDDEHgz

正如你可以看到它的巨大的,並沒有告訴我什麼。有什麼辦法可以快速檢查哪個依賴注入導致一個循環?

回答

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(AGA在IMapService !!!) - > IApplicationVisibility

MarkerClickHandler再次注入IMapService這將啓動週期

+0

謝謝你。我一直在通過反覆試驗來修復它,因爲日誌對我來說毫無用處。現在我會知道:) – Rybzor

+0

是的,在所有程序員中總會有一些大日誌恐懼症:D甚至在meh:D但是當談到解決別人的問題時,我們都是所有人的主人:)) –