2014-01-17 94 views
5

我有一個工作和圖書館項目。 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並複製所有源文件。此時,新項目中的所有項目都按預期工作。奇怪的事情!

回答

0

我在庫中看不到使用Dagger的任何問題。您的問題在於它沒有生成必要的綁定代碼。

要在Eclipse內啓用此功能,請參見this link

+0

我驗證了至少10倍的項目屬性,特別是Java編譯器,註釋處理和工廠路徑。他們是對的,但綁定代碼沒有生成。在新的清潔項目中,所有工作都按預期進行。我不知道這個舊項目中破了什麼。 –

+0

切記在更改apt設置後重新完成項目。 –

+0

當涉及到@Singletons並將它們注入到庫項目和具體應用程序項目中時,匕首2(我懷疑dagger 1.x也是如此)和庫項目似乎存在問題:http ://stackoverflow.com/q/31417795/1041533 – AgentKnopf