12

これは私が現在持っているもので、動作します:

@FragmentScope
@Component(dependencies = {FacebookComponent.class}, 
           modules = {FragmentFacebookLoginModule.class})
public interface FragmentFacebookLoginComponent {

    void inject(FragmentFacebookLogin fragment);
}

ここで、別の依存関係を追加したいと思います。私はこれを次のように変更しました:

@Component(dependencies = {FacebookComponent.class, AnotherComponent.class}, 
           modules = {FragmentFacebookLoginModule.class})

しかし今、私はこのエラーメッセージを受け取ります:

FragmentFacebookLoginComponent は複数のスコープ コンポーネントに依存します

どうすればこれを解決できますか? 複数の依存関係を持つにはどうすればよいですか?

1 つのコンポーネントからスコープを削除すると、次のエラー メッセージが表示されます。

AnotherComponent (スコープ外) はスコープ付きコンポーネントに依存できません

4

5 に答える 5

4

ここで答えを見つけました:https://stackoverflow.com/a/29619594/1016472

最後に、適切なスコープで AppComponent を作成し、FacebookComponent と AnotherComponent がこの AppComponent を拡張できるようにしました。

FacebookComponent と AnotherComponent には独自のスコープがありません (削除しました)。

次のようになります。

@AppScope
@Component
public interface AppComponent {

}


@Component(modules = {FacebookModule.class})
public interface FacebookComponent extends AppComponent {

}


@Component(modules = {AnotherModule.class})
public interface AnotherComponent extends AppComponent {

}


@FragmentScope
@Component(dependencies = {FacebookComponent.class, AnotherComponent.class}, 
           modules = {FragmentFacebookLoginModule.class})
public interface FragmentFacebookLoginComponent {

    void inject(FragmentFacebookLogin fragment);
}
于 2015-05-24T15:52:15.957 に答える
0

次のような依存モジュールをモジュールに含めます。

@Module(includes = FacebookModule.class)
public class AnotherModule {...
于 2016-12-20T15:55:31.757 に答える