Мое поле для дооснащения в этом классе никогда не вводится, оно по-прежнему равно нулю, когда я запускаю свой код.
Вот мой ServiceClass, в который я внедряю дооснащение, получаю вызовы API и т. Д. Я удалил егодля простоты:
public class ServiceClass{
@Inject
Retrofit retrofit;
public ServiceClass(){
}
}
Мой класс модуля для всех зависимостей, связанных с сетью:
@Module
public class NetworkModule {
@Provides
@ApplicationScope
Retrofit getRetrofit(OkHttpClient okHttpClient, Gson gson){
return new Retrofit.Builder()
.baseUrl(URL.BASE_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create(gson))
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();
}
@Provides
@ApplicationScope
OkHttpClient getOkHttpClient(Gson gson, HttpLoggingInterceptor httpLoggingInterceptor){
OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.newBuilder().addInterceptor(httpLoggingInterceptor);
return okHttpClient;
}
@Provides
@ApplicationScope
HttpLoggingInterceptor getHttpLoggingInterceptor(){
return new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BASIC);
}
@Provides
@ApplicationScope
Gson getGson(){
return new Gson();
}
}
Мой AppComponent, это мой единственный класс компонента:
@ApplicationScope
@Component(modules = {NetworkModule.class})
public interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(MyApplication myApplication);
AppComponent build();
}
void inject(MyApplication myApplication);
Retrofit getRetrofit();
}
Мое приложениекласс:
public class MyApplication extends Application{
private AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
DaggerAppComponent
.builder()
.application(this)
.build()
.inject(this);
}
public AppComponent getAppComponent(){
return appComponent;
}
}
Я попытался поиграться с кодом, мне не удается заставить его работать должным образом.Что мне здесь не хватает?