我正在研究一個項目,並試圖使其儘可能模塊化。匕首2:@Module(包括=)做什麼?
我正在嘗試使用@Module(includes = {})註釋來實現我的目標,並且它工作得不太好。
我有一個用於所有Java代碼的gradle模塊,並且每個部分都有一個模塊(例如About頁面依賴關係的AboutModule)。然後,整個「核心」 gradle這個模塊,我有一個匕首2模塊稱爲「CoreModule」它看起來像這樣:
@Module(includes = {
AddonModule.class,
VersionModule.class,
AboutModule.class}
)
public class CoreModule {
}
難道我就在想,在Android gradle這個模塊中,所有的應用程序代碼去,我應該能夠將該模塊包含在Component中,並且該組件可以@從CoreModule中列出的所有模塊中注入任何東西?
目前,我從這些組件收到編譯錯誤,提示它們注入的文件是「要求」一個完全不同的類,它不在模塊中。例如,我有一個GitHubComponent被注入到GitHubActivity中,並且還嘗試使用@Inject註釋GithubService注入,但是編譯器拋出錯誤,該類試圖注入另一個類...這在目標文件中沒有提及。我已經sjmplfied這個試圖清除錯誤,但我沒有看到它出錯的地方。
我找不到這方面的任何文檔。包含部分實際上做了什麼?我是否正確使用它,因此錯誤在其他地方?
感謝您的支持。我在Docs頁面上看到了高和低(儘管在我家的通勤車上),但是找不到它。我一直以正確的方式使用它們,這非常棒。感謝您幫助解決這個問題!關於ti我的錯誤實際上我發現這是因爲CoreModule包含了Core庫中的所有模塊,其中一些依賴項沒有包含在我正在使用的組件中(GitHubComponent,在這種情況下 - 版本和Addon模塊在GitHub模塊中沒有提供另一個Retrofit存儲庫依賴項)。那也解決了那個問題! – MattBoothDev