2013-10-31 9 views
16

私はIntelliJのプロジェクトの依存関係のインジェクターとしてダガーを実装しようとしているが、私のコードは、上の障害が発生している:輸入javax.inject.Injectパッケージが見つかりません

輸入javax.inject.Injectを。

Intellijは「注入」パッケージではなく「javax」パッケージを見つけているため、失敗します。

私はAndroidには新しく、これは頭がおかしくない場合はお詫びしますが、注射パッケージが見つからない理由を教えてください。

+1

java EE 6パッケージがダウンロードされていることを確認してください:intelliJでは、alt + enterキーを押すと「このパッケージのWeb検索」などのオプションがあります。そのパッケージを持っている。 – Epicblood

+0

Mavenを使用していますか? –

+0

IntelliJを使用してjarファイルを検索すると、 'javax.inject.Inject'で使用できるjarファイルがないことがわかります。 –

答えて

16

ダガーは、依存関係注入に使用されるJava標準アノテーションJSR 330(think:@Inject,@Singletonなど)に依存します。

これは、追加する必要がある別のjarです。依存関係管理(Maven、Gradle、Ant + Ivy、sbt)を統合したビルドシステムを使用していた場合は、これを無料で入手できます。まだjarファイルをコピーしている場合は、手動で追加する必要があります。

Maven central(最下部)から最新のjarをダウンロードできます。

+2

実際に自分のコードで使用している推移的な依存関係を、したがって、アノテーションを使用している場合は、いずれの場合でもjavax.inject成果物をインポートすることをお勧めします。 –

9

プレーンJavaプロジェクトを使用して、誰もがMavenのかGradleのかe.t.c.ない場合は、あなたのpom.xml場合

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

にこれを追加あなたはInject Jar file

ここから別のJarファイルをダウンロードし、IDEAにあなたが行うことができ、あなたの外部ライブラリに追加することができ、次のように: ファイル - >プロジェクト構造を - >ライブラリ - >新規プロジェクトライブラリ(+)

次に、ライブラリへのパスを見つけ、ジョブが完了しました。

+0

なぜJava 8でコンパイルされているのか(このライブラリには必要ありません)、Java 7ではコンパイルできませんか? – Aguid

関連する問題