問題タブ [dagger]
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.
android - ダガーとバターナイフ Android の違い
DaggerとButterknifeの違いを指摘できる人はいますか? Butterknife はビュー注入ライブラリであり、Dagger は依存性注入ライブラリであることを知っています。しかし、オンラインのドキュメントは私にとって少しオーバーヘッドがあるようです。Butterknife のドキュメントによると、非アクティビティ インジェクションも実行できますが、これは Dagger が行うことですか? それとも私は何かを誤解しましたか?
android - 継承関係を持つ Application クラスの Dagger モジュール
Android アプリケーションで依存性注入に Dagger を使用しています。
私は 2 つのアプリケーション クラスを持っています。それらを A と B と呼びましょう。B 拡張 A 拡張android.app.Application
A には、すべてのアプリケーションに共通する責任と依存関係があります。B には、現在のアプリケーションに固有の責任と依存関係があります。
AModule
私は2つのモジュールを持つことができるようにしたいと思いますBModule
.Aは前者を使用して自分自身を注入し、Bは後者を使用します。
問題は、BModule
コンパイル時に A のクラスへの参照が必要であるかのように見えることです。そうしないと、実行時エラーがスローされます。したがってBModule
、エラーを回避するには、次のようにする必要があります (injects
注釈フィールドの値に注意してください)。
しかし、次BModule
のように、B についてのみ知りたいと思います。
これを行ったときにスローされるエラーは、実際には、注入されるインスタンス (A) がBModule
、注入を担当することが知られているクラスのものではないことを示しています。
実行時エラーを発生させずにこれを達成する方法はありますか?
ありがとう!
android - Dagger - クラスには注入可能なメンバーがありません
Dagger をアプリケーションに統合しようとしています。そして、私は問題に遭遇しました。実行時に次のエラーが発生します。
他の同様の回答を調べてみましたが、これまでのところ何も役に立ちませんでした...
グラフの構築に関連するものはすべて、Android アクティビティ グラフの例とほとんど同じように実装されています。
と の 2 つのモジュールがActivityModule
ありApplicationModule
ます。
そしてもう一つ
私は何を間違っていますか?
更新:
詳細を追加:
断片:
ナビゲーション コントローラ:
android - AAR で Dagger (または別の DI IoC コンテナー) を使用する例はありますか?
Gradle上に構築されたDIの簡単な例はありますか? 標準の設計パターンと同様に、オプションの依存関係を表現するために使用されるセッター注入を確認する必要があります。ありがとうございました
編集 Q のコンテキストをより適切に定義するために... 私はすでに apk -OpenTweetSearch- を Google Play に持ってい ます https://play.google.com/store/apps/details?id=org.new_year
Twitter OAuth 2.0 を Google Drive SDK OAuth 2.0 と統合したいと考えています。ここで、Google Drive SDK の Gradle 依存関係を見つけました: https://gist.github.com/johnscheible/5994719推移的な依存関係 は除外されます。「ただし、除外は、アプリ開発者が必要とする可能性があるものの、理想的には避けるべきもののように感じます」( Gradle for Android, AARs, and Conditional Dependencies を参照)。そのため、Google ドライブ SDK のコンテキストで gradle と依存性注入のコード例を求めています。これで十分であり、c# .net WPF の例でも十分です。いずれにせよ、コード例は私の質問の要点ではなく、コード例なしで答えることができます: 実際にはデザインパターンコードを実装する前に議論する必要があり、構築システムのレイヤーとは別の抽象レイヤーで管理する必要があります。そのため、Q の焦点ではない 2 番目のポイントで Q が保留になる理由を理解できません。
java - 短剣でシングルトンに依存関係を注入しますか?
Dagger にシングルトンを注入させることは可能ですか?
現状では、依存関係をシングルトンに手動で提供する方法しか見つけられませんでした。
これがシングルトンを定義する唯一の方法ですか? 私がやりたいのは、次のようなもので、Dagger が依存関係自体を注入するようにすることですが、そうするとエラーが発生します。
おそらく、他のシングルトンを挿入できるようにするシングルトンを定義する別の方法がありますか?
どんな助けでも大歓迎です。
編集: 別のシングルトンで2番目のアプローチを行っていることに気付きましたが、実装をインターフェイスにマッピングしているため、少し異なるケースです:
TrackerImpl には、上記の PPreferences のインスタンスも注入されます。
2 番目の例で Dispatcher を作成しようとすると、次のエラーが表示されます。
android - ライブラリ プロジェクトで Dagger を使用することは可能ですか?
私は仕事と図書館のプロジェクトを持っています。Dagger は作業プロジェクトで使用され、数日前にライブラリ プロジェクトでも Dagger を使用することにしました。ライブラリ プロジェクトの Eclipse Java コンパイラと注釈処理の設定を構成し、必要な Dagger & JavaWriter JAR を追加し、ライブラリ プロジェクトにモジュールをデカールしました。現在、両方のプロジェクトにエラーはありません。
しかし、Android デバイスでアプリケーションを実行しようとすると、クラッシュします。
これは、ライブラリ プロジェクトで .apt_generated フォルダーが空であるためだと思います。Dagger は、ライブラリ プロジェクトのクラスを生成しません。おそらく、IDE/プロジェクトの構成に誤りがあります。しかし、仕事とライブラリプロジェクトの両方で来た設定を正確に行い、何が間違っている可能性があるのか わかりません。
私の質問: Android ライブラリ プロジェクトで Dagger を使用することは可能ですか? また、コード生成を有効にするのに適切な Eclipse 構成は何ですか?
前もって感謝します。
編集:新しいクリーンなライブラリ プロジェクトを作成し、それを Dagger 用に設定して、古いプロジェクトからすべてのソース ファイルをコピーしました。現時点では、新しいプロジェクトのすべてが期待どおりに機能しています。奇妙なこと!
java - 短剣で匿名の内部クラスを注入する方法は?
匿名クラスを注入することは可能ですか? 次のエラーが発生します。
java.lang.IllegalArgumentException: members/com.acme.MyFragment$1 に注入が登録されていません。モジュールの 1 つの 'injects' オプションに明示的に追加する必要があります。
例: