問題タブ [dagger-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
410 参照

java - 生成された実装を Dagger Dependency Graph に追加するには?

私はインターフェースを持っています

SomeInterfaceと呼ばれるの実装を生成する注釈プロセッサSomeInterfaceImpl

このタイプを Dagger 依存性注入で使用できるようにするには、次のように作成します。

問題は、ApplicationModule で use を使用できないことSomeInterfaceImplです。それはまだ利用できず、アノテーション プロセッサによって生成されるためです。

SomeInterfaceDagger 依存性注入に使用できるように注釈プロセッサを拡張し、生成された実装SomeInterfaceImplが正しく解決されるようにするにはどうすればよいですか?

編集:

この例は機能しますが、別の注釈プロセッサを使用して ApplicationModule を作成し、プロセッサに ApplicationModule を何らかの方法でダガー グラフに統合させたいと考えています。@Component(modules={ApplicationModule.class}) ApplicationModule が生成されることをコードで知らないため、存在しません。生成された @Module クラスを Dagger Graph に統合する方法はありますか? ABCModule が生成されて @Component に追加されると推測したくないことに注意してください。これがどういうわけか自動的に起こることを望みます。

0 投票する
2 に答える
9855 参照

android - Dagger2 で生成されたクラスが突然 Android Studio に表示されない

Android StudioでDagger2を何ヶ月も使用していますが、今日突然動作しなくなり、次のエラーが表示されます

これが失敗しているコードです

ここに私のgradle情報があります

そして、これが私のbuild.gradleの内容です

どんな助けでも大歓迎です。

0 投票する
3 に答える
23402 参照

android - Dagger2 は「Dagger_」ファイルを生成しません

しばらくの間、ダガー 2 を使用していますが、今日コンパイルしようとすると、次のエラーが発生しました。

エラー:(13, 31) エラー: シンボル クラス Dagger_GlobalComponent が見つかりません

エラー:(38, 21) エラー: シンボル変数 Dagger_GlobalComponent が見つかりません

コードは次のとおりです。

そしてgradleの依存関係:

解決策はありますか?すでに試みました:クリーン、リビルド、依存バージョンの変更、Gradleキャッシュの削除、Android Studioの再インストール。

このサンプルプロジェクトでも同じエラーが発生するのに役立つ場合:

https://github.com/gk5885/dagger-android-sample

https://github.com/mgrzechocinski/dagger2-example

0 投票する
2 に答える
13984 参照

java - Dagger 2 のスコープ

私はおそらく何かを見逃していましたが、 @Singleton のようなスコープは「スコープ付きライフサイクル」を定義するために使用されると思いました。

AndroidアプリでDagger 2を使用しています(ただし、問題はAndroidに関連しているとはまったく思いません)。

私は1つのモジュールを持っています:

@Singletonスコープを持つ 2 つの異なるコンポーネントがあります。

MenuPresenterとの両方にLoginPresenterコンストラクタがあり@Injectます。MenuPresenter はMailProviderパラメーターとして期待されますが、LoginPresenter は以下を受け取りますAccountManager

しかし、コンポーネントを使用して を作成するたびに、MenuPresenterまたはLoginPresenterの新しい新しいインスタンスを取得しMailProviderますAccountManager。私はそれらが同じスコープにあると思ったので、(同じスコープの)シングルトンのようなものでなければなりません。

完全に間違っていることを理解しましたか。dagger 2 で複数のコンポーネントに対して実際のシングルトンを定義するにはどうすればよいですか?

0 投票する
3 に答える
148 参照

android - メソッドの依存関係を提供する

ドキュメントでは、 @Provides メソッドには、次のような独自の依存関係がある可能性があると書かれています。

次のように書くと何が変わるでしょうか。

そして、最初の抜粋: メソッドはどこからポンプを取得しますか?

0 投票する
8 に答える
7921 参照

java - ダガー 2.0 を使用するように IntelliJ/gradle を構成するにはどうすればよいですか

Gradle プロジェクトがあり、dagger 2.0 を使用したいと考えています。IntelliJ と gradle を構成してファイルを生成し、IntelliJ にそれらを見つけさせる方法がわかりません。

私のbuild.gradleファイルは次のようになります:

私のアプリケーションのビルド ディレクトリにDaggerXmlConfigurationComponentは、Dagger が作成するコンポーネントであるファイルが存在します。しかし、クラスが見つからないため、IntelliJ では使用できません。

これは Android アプリケーションではなく、Raspberry Pi 用のアプリケーションです。

0 投票する
4 に答える
51169 参照

dagger - Dagger 2 サブコンポーネントとコンポーネントの依存関係

Dagger 1 のplus()メソッドは、以前のアプリケーションで頻繁に使用したものなので、親グラフ バインディングへの完全なアクセス権を持つサブコンポーネントが必要になる状況は理解できます。

サブコンポーネントの依存関係の代わりにコンポーネントの依存関係を使用すると、どのような状況で有益でしょうか?またその理由は?

0 投票する
3 に答える
3378 参照

android - 非アクティビティ クラスを Dagger 2 Graph Android に追加する

私が見た限られた例以外で、Dagger 2.0 を使用する方法を理解するのに苦労しています。読み取りアプリケーションの例を見てみましょう。この読書アプリには、ユーザーのストーリーとログイン機能のライブラリがあります。この例の目的で関心のあるクラスは次のとおりです。

MainApplication.java- アプリケーションを拡張

LibraryManager.java- ユーザーのライブラリでストーリーの追加/削除を担当するマネージャー。これは、MainApplication

AccountManager.java- すべてのユーザーのログイン情報を保存する責任がある管理者。LibraryManager から呼び出すことができます。

どのコンポーネントとモジュールを作成する必要があるのか​​、まだ頭を悩ませています。これまでに収集できるものは次のとおりです。

andインスタンスHelperModuleを提供する を作成します。AccountManagerLibraryManager

モジュールのリストにMainApplicationComponentをリストする を作成します。HelperModule

に含め@Injects LibraryManager libraryManagerMainApplication、アプリケーションをグラフに挿入します。最後に、注入さLibraryManagerれたライブラリ内のストーリーの数を照会します。

に注入AccountManagerするLibraryManager

ただし、問題は、でAccountManager使用しようとすると null でありLibraryManager、問​​題を解決する理由や方法がわかりません。グラフに注入された が AccountManager を直接使用していないためだと思いますが、どのようにグラフMainApplicationに注入する必要がありLibraryManagerますか?

0 投票する
2 に答える
12109 参照

android - Dagger 2 と android Studio: 動作しているが、生成されたクラスが表示されない

Android Studio プロジェクトで Dagger 2 を使用しようとしています。私は CoffeeMaker の例を使用しました。ただし、アプリをビルドして動作させることができました: - 生成されたコードを確認できません。- デバッグしても見えません。- さらに、リードとしてマークされている DaggerCoffeeApp_Coffee (シンボルを解決できません)

私のgradleファイルは次のとおりです。

ありがとう