我是 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 被删除并表示已弃用。 有人可以向我解释问题是什么。提前致谢。