169 похожих чатов

Ребят подскажите плз, начал втыкать в dagger2 и возникла 1

проблема:
Сделал 2 компонента
DBComponent
и
NetComponent
в
DBComponent
входят модули
DBModule
и
AppModule
в компонент
NetComponent
входит один модуль
NetModule
Проблема в том что когда я в
DBComponent
добавляю метод
void inject(TopicViewModel topicViewModel)
у меня лезет ошибка,
(error: retrofit2.Call<java.util.List<com.example.testcreator.models.Topic>> cannot be provided without an @Provides- or @Produces-annotated method.)
(прикол в том что ретрофит там никак не связан, он в другом модуле) когда убираю все норм. В чем может быть проблема?
Код ниже:
DBComponent
@Component(modules = {DBModule.class, AppModule.class})
@Singleton
public interface DBComponent {
void inject(App app);
void inject(TopicViewModel topicViewModel);
}
DBModule
@Module
public class DBModule {
@Provides
@Singleton
MyDataBase provideDB(@Named("application_context") Context context){
return Room.databaseBuilder(context,MyDataBase.class,"DBTestCreator").build();
}
}
AppModule
@Module
public class AppModule {
private final Context context;

public AppModule(Context context){
this.context = context;
}
@Named("application_context")
@Provides
Context provideAppContext(){
return context;
}
}
App
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
DaggerDBComponent.builder().appModule(new AppModule(this)).build();
}
}
NetComponent
@Singleton
@Component(modules = {NetModule.class})
public interface NetComponent {
void inject(TopicViewModel topicViewModel);
}
NetModule
@Module
public class NetModule {
private final String BASE_URL="http://site.ru/api/";

@Provides
@Singleton
Retrofit provideRetrofit(){
return new Retrofit
.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.build();
}

@Provides
Call<List<Topic>> provideAllTopics(Retrofit retrofit){
return retrofit
.create(JSONSiteApi.class)
.getAllTopics();
}
}

2 ответов

13 просмотров

pastebin.com, цуко

ни капли увожения к мобильным клиентам

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Есть предложения, как подобное можно упростить?
Hemul GM
12
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
just use free version ?? pycharm has a free version
Fan / Ac
9
Карта сайта