2

我正在使用 Dagger 2,并希望使用它为 Android Studio 中的不同构建风格注入不同的依赖项。

public class DemoApplication extends Application{

AppComponent component;

    @Override
    public void onCreate() {
        super.onCreate();

 component = DaggerAppComponent.builder().module(new Module()).build();
    }
}


@Module
public class Module {

    @Provides
    @Singleton
    public ClassA provideClassA(){
        return new ClassA();
    }
}



@Component (modules = {Module.class})
public interface AppComponent {

    ClassA getClassA();

}

现在假设我希望返回 ClassA 的对象以用于 prod 风格,但在调试风格中返回 ClassB 的对象(从 ClassA 扩展)。

4

1 回答 1

2

使用特定于风味的源集

例如,让我们考虑模拟生产风味。创建mockproduction目录并将它们放在旁边,在和目录中main放置一个单独的类(包也必须相同)。这样,当您切换构建变体时,编译器将引用其中的类或风味,允许您根据风味注入不同的实现。ModulemockproductionModulemockproduction

查看有关源集的参考:http ://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Sourcesets-and-Dependencies

这个答案也可能会有所帮助:特定风味的变体如何工作?

于 2017-02-26T23:37:22.130 回答