2013-10-31 71 views
16

我試圖實現匕首作爲一個項目的IntelliJ一個依賴注入,但我的代碼失敗的:無法找到進口javax.inject.Inject包

進口javax.inject.Inject;

Intellij找到了'javax'包,但沒有找到'inject'包,所以失敗了。

我是新來的Android,所以我很抱歉,如果這是一個沒有道理,但任何人都可以告訴我爲什麼注射包沒有被發現?

+1

確保你有java EE 6軟件包下載,或者:在intelliJ上,你可以點擊alt + enter,並且會有一個選項,比如「搜索這個軟件包的網絡」,它會給你一個jar列表有這個包。 – Epicblood

+0

你在使用Maven嗎? –

+0

當我使用IntelliJ搜索罐子時,它告訴我沒有罐子可用於'javax.inject.Inject'。 –

回答

16

Dagger依賴於JSR 330,用於依賴注入的Java標準註釋(例如:@Inject@Singleton等)。

這是一個單獨的jar,你必須包括。如果你正在使用一個集成了依賴管理的構建系統(Maven,Gradle,Ant + Ivy,sbt),你可以免費獲得這個。如果你仍然在複製jar文件,那麼你必須手動添加它。

您可以從Maven central(底部)下載最新的罐子。

+2

根據maven指南,您不應該在自己的代碼中實際使用「免費獲取」傳遞依賴關係,所以我建議在任何情況下導入javax.inject工件,如果您使用它的註釋。 –

9

添加到您的pom.xml

<dependency> 
    <groupId>javax.inject</groupId> 
    <artifactId>javax.inject</artifactId> 
    <version>1</version> 
</dependency> 
3

萬一如果使用普通的Java項目沒有任何人或Maven的或搖籃e.t.c.你可以從這裏Inject Jar file

下載一個單獨的JAR文件,然後添加到您的外部庫,在知道你能做到這一點,如下所示: 文件 - >項目結構 - >庫 - >新建項目庫(+)

然後找到圖書館和工作完成的路徑。

+0

你有一個想法,爲什麼它與Java 8編譯(不需要這個庫),而不是Java 7? – Aguid