我有一個工作和圖書館項目。 Dagger被用在了工作項目中,幾天前我也決定在圖書館項目中使用Dagger。我爲庫項目配置了Eclipse Java Compiler和Annotation Processing設置,添加了必需的Dagger & JavaWriter JAR,在庫項目中對模塊進行了轉化。現在這兩個項目都沒有任何錯誤。圖書館項目中是否可以使用Dagger?
但是,當我試圖在Android設備上運行的應用程序,它崩潰:
java.lang.RuntimeException:
Unable to create application com.iqm.smartapp.AlarmsApplication:
java.lang.IllegalStateException:
Module adapter for class com.iqm.library.IQMLibraryModule could not be loaded.
Please ensure that code generation was run for this module.
我想這是因爲引起了庫項目的.apt_generated文件夾爲空! Dagger不會爲圖書館項目生成類。可能有一些IDE /項目配置錯誤。但是,在工作和圖書館項目中完全來到配置,並沒有更多的想法,什麼是錯的。
所以我的問題:是否有可能在Android庫項目中使用Dagger?什麼應該是正確的Eclipse配置啓用需要代碼生成?
在此先感謝。
編輯:我做了一個新的乾淨的庫項目,將它設置爲Dagger並複製所有源文件。此時,新項目中的所有項目都按預期工作。奇怪的事情!
我驗證了至少10倍的項目屬性,特別是Java編譯器,註釋處理和工廠路徑。他們是對的,但綁定代碼沒有生成。在新的清潔項目中,所有工作都按預期進行。我不知道這個舊項目中破了什麼。 –
切記在更改apt設置後重新完成項目。 –
當涉及到@Singletons並將它們注入到庫項目和具體應用程序項目中時,匕首2(我懷疑dagger 1.x也是如此)和庫項目似乎存在問題:http ://stackoverflow.com/q/31417795/1041533 – AgentKnopf