web-dev-qa-db-ja.com

インポートjavax.inject.Injectパッケージが見つかりません

DaggerをIntelliJプロジェクトの依存関係インジェクターとして実装しようとしていますが、コードが失敗します:

import javax.inject.Inject;

Intellijは 'javax'パッケージを検出していますが、 'inject'パッケージは検出していないため、失敗します。

私はAndroidを初めて使用するので、これが非常に簡単な場合は謝罪しますが、injectパッケージが見つからない理由を教えていただけますか?

22
Indigo Nai

DaggerはJSR 330に依存しています。Java依存性注入に使用される標準注釈(思考:@Inject@Singletonなど)。

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

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

19
Jake Wharton

これをpom.xmlに追加します

<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>
15
Dwight Lisper

プレーンJavaプロジェクトではなくMaven、Gradle、e.t.cを使用している場合。ここから個別のJarファイルをダウンロードできます Inject Jar file

次に、IDEAで外部ライブラリに追加します。次のようにできます。ファイル->プロジェクト構造->ライブラリ->新しいプロジェクトライブラリ(+)

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

3
hasskell

//依存性注入の実装 "com.google.dagger:dagger:$ rootProject.dagger2Version"

// dependency injection
    implementation "com.google.dagger:dagger:$rootProject.dagger2Version"
    implementation {
        exclude(group: 'javax.inject', module: 'javax.inject')
    }
0