2

Android アプリケーションで依存性注入に Dagger を使用しています。

私は 2 つのアプリケーション クラスを持っています。それらを A と B と呼びましょう。B 拡張 A 拡張android.app.Application

A には、すべてのアプリケーションに共通する責任と依存関係があります。B には、現在のアプリケーションに固有の責任と依存関係があります。

AModule私は2つのモジュールを持つことができるようにしたいと思いますBModule.Aは前者を使用して自分自身を注入し、Bは後者を使用します。

問題は、BModuleコンパイル時に A のクラスへの参照が必要であるかのように見えることです。そうしないと、実行時エラーがスローされます。したがってBModule、エラーを回避するには、次のようにする必要があります (injects注釈フィールドの値に注意してください)。

@Module(injects = {A.class}, library = true, complete = false)
public class BModule {
   ... 
}

しかし、次BModuleのように、B についてのみ知りたいと思います。

@Module(injects = {B.class}, library = true, complete = false)
public class BModule {
   ... 
}

これを行ったときにスローされるエラーは、実際には、注入されるインスタンス (A) がBModule、注入を担当することが知られているクラスのものではないことを示しています。

実行時エラーを発生させずにこれを達成する方法はありますか?

ありがとう!

4

1 に答える 1