Dagger 弃用模块

问题描述 投票:0回答:0

我是 Dagger 的新手。我正在使用 MVVM 和 retrofit 以及 android 中的 Dagger 创建一个简单的应用程序。我创建了 2 个模块 - AppModule 和 NetworkModule。将这些模块添加到我的 Appcomponent。在我的应用程序类中,当我尝试构建模块时,显示已弃用。

NetworkModule.class

@Module
public class NetworkModule {

String mBaseURL;

public NetworkModule(String baseUrl){
    this.mBaseURL = baseUrl;
}

@Provides
@Singleton
Gson provideGson() {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES);
    return gsonBuilder.create();
}

@Provides
@Singleton
Retrofit provideRetrofit(Gson gson, OkHttpClient okHttpClient) {
    return new Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create(gson))
            .baseUrl(mBaseURL)
            .client(okHttpClient)
            .build();
}
}

AppModule.class

@Module
public class AppModule {

private Application mApplication;

public AppModule(Application application){
    this.mApplication = application;
}

@Provides
@Singleton
Application provideApplication(){
    return mApplication;
}

}

AppComponent.class

@Singleton
@Component(modules = {AppModule.class, NetworkModule.class})
public interface AppComponent {
    void inject(MainActivity mainActivity);
}

MyApplication.class

public class MyApplication extends Application {

private AppComponent appComponent;

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

    //appComponent = DaggerA
    AppComponent sdfds = DaggerAppComponent
            .builder()
            .appModule(new AppModule(this))
            .networkModule(new NetworkModule("http://myurl/nnn/ddd"))
            .build();
}

public AppComponent getAppComponent(){
    return appComponent;
}
}

我看到 .appModule 和 .NetworkModule 被删除并表示已弃用。 有人可以向我解释问题是什么。提前致谢。

android dependency-injection dagger-2 dagger android-mvvm
© www.soinside.com 2019 - 2024. All rights reserved.