Size: a a a

2020 November 19

DZ

Dmitry Zhgun in Dagger 2
Товарищи, как в Hilt использовать Qualifier?
Дано:
   @Qualifier
   @Retention(AnnotationRetention.RUNTIME)
   annotation class Remote

   @Qualifier
   @Retention(AnnotationRetention.RUNTIME)
   annotation class Local

   @Provides
   @Local
   @Singleton
   fun provideAuthLocalDataSource(
           appPreferencesHandler: AppPreferencesHandler): AuthenticationDataSource {
       return AuthenticationLocalDataSource(appPreferencesHandler)
   }

   @Provides
   @Remote
   @Singleton
   fun provideAuthRemoteDataSource(): AuthenticationDataSource {
       return AuthenticationRemoteDataSource()
   }

   @Provides
   @Singleton
   fun providesAuthenticationRepository(
           @Remote remoteDataSource: AuthenticationDataSource,
           @Local localDataSource: AuthenticationDataSource,
           configurationFileDataSource: ConfigurationFileDataSource): AuthenticationRepository {
       return AuthenticationRepository(remoteDataSource, localDataSource, configurationFileDataSource)
   }

Ругается на
 symbol:   class AuthenticationDataSource
 location: package com.myapp.repositoryC:\AndroidProjects\<myapp>\di\AppModule.java:59: error: cannot find symbol
   com.myapp.repository.AuthenticationDataSource remoteDataSource, @org.jetbrains.annotations.NotNull()
                                     ^
 symbol:   class AuthenticationDataSource
 location: package com.myapp.repositoryC:\AndroidProjects\<myapp>\di\AppModule.java:61: error: cannot find symbol
   com.myapp.repository.AuthenticationDataSource localDataSource, @org.jetbrains.annotations.NotNull()

Заглянул в AppModule, а там  вот так:
   @org.jetbrains.annotations.NotNull()
   @javax.inject.Singleton()
   @com.myapp.di.AppModule.Local()
   @dagger.Provides()
   public final com.myapp.repository.AuthenticationDataSource provideAuthLocalDataSource(@org.jetbrains.annotations.NotNull()
   com.myapp.model.AppPreferencesHandler appPreferencesHandler) {
       return null;
   }
источник

JF

Jorik Fat in Dagger 2
Dmitry Zhgun
Товарищи, как в Hilt использовать Qualifier?
Дано:
   @Qualifier
   @Retention(AnnotationRetention.RUNTIME)
   annotation class Remote

   @Qualifier
   @Retention(AnnotationRetention.RUNTIME)
   annotation class Local

   @Provides
   @Local
   @Singleton
   fun provideAuthLocalDataSource(
           appPreferencesHandler: AppPreferencesHandler): AuthenticationDataSource {
       return AuthenticationLocalDataSource(appPreferencesHandler)
   }

   @Provides
   @Remote
   @Singleton
   fun provideAuthRemoteDataSource(): AuthenticationDataSource {
       return AuthenticationRemoteDataSource()
   }

   @Provides
   @Singleton
   fun providesAuthenticationRepository(
           @Remote remoteDataSource: AuthenticationDataSource,
           @Local localDataSource: AuthenticationDataSource,
           configurationFileDataSource: ConfigurationFileDataSource): AuthenticationRepository {
       return AuthenticationRepository(remoteDataSource, localDataSource, configurationFileDataSource)
   }

Ругается на
 symbol:   class AuthenticationDataSource
 location: package com.myapp.repositoryC:\AndroidProjects\<myapp>\di\AppModule.java:59: error: cannot find symbol
   com.myapp.repository.AuthenticationDataSource remoteDataSource, @org.jetbrains.annotations.NotNull()
                                     ^
 symbol:   class AuthenticationDataSource
 location: package com.myapp.repositoryC:\AndroidProjects\<myapp>\di\AppModule.java:61: error: cannot find symbol
   com.myapp.repository.AuthenticationDataSource localDataSource, @org.jetbrains.annotations.NotNull()

Заглянул в AppModule, а там  вот так:
   @org.jetbrains.annotations.NotNull()
   @javax.inject.Singleton()
   @com.myapp.di.AppModule.Local()
   @dagger.Provides()
   public final com.myapp.repository.AuthenticationDataSource provideAuthLocalDataSource(@org.jetbrains.annotations.NotNull()
   com.myapp.model.AppPreferencesHandler appPreferencesHandler) {
       return null;
   }
Пришлите, пожалуйста, скриншотом. Это не читаемо
источник

DZ

Dmitry Zhgun in Dagger 2
Jorik Fat
Пришлите, пожалуйста, скриншотом. Это не читаемо
На Pastebin мб лучше?
источник

JF

Jorik Fat in Dagger 2
Да просто скриншотом, чтобы по ссылкам не ходить
источник

JF

Jorik Fat in Dagger 2
Dmitry Zhgun
На Pastebin мб лучше?
Можно несколькими
источник

DZ

Dmitry Zhgun in Dagger 2
Jorik Fat
Да просто скриншотом, чтобы по ссылкам не ходить
Не хочу опять переписывать пакет приложения))

Итак,

Дано:
https://pastebin.com/Ye4hBxvq

Ругается на:
https://pastebin.com/tXRwJm2h

В сгенерированном AppModule:
https://pastebin.com/CK2QZs40
источник

DZ

Dmitry Zhgun in Dagger 2
Разобрался, спс - с аннотациями проблема была, изза этого ничего не генерилось
источник

SV

Sergey Vasilchenko in Dagger 2
Ещё кстати можно не писать Provides там где это не надо)
источник
2020 November 22

I

Isak in Dagger 2
Добрый вечер, плиз, помогите, в проекте не отображается DaggerAppComponent, вообще, пробовал clean/restart сделать
источник

ES

Egor Sigolaev in Dagger 2
Isak
Добрый вечер, плиз, помогите, в проекте не отображается DaggerAppComponent, вообще, пробовал clean/restart сделать
Закоментить код, собрать проект и раскоментить
источник

I

Isak in Dagger 2
Все равно не работает
источник

ES

Egor Sigolaev in Dagger 2
Isak
Все равно не работает
Печально тогда(
источник

I

Isak in Dagger 2
или может к нему нужно спец библиотеку подключать?
источник

A

Ak in Dagger 2
Isak
или может к нему нужно спец библиотеку подключать?
Нет
источник

ES

Egor Sigolaev in Dagger 2
Isak
или может к нему нужно спец библиотеку подключать?
Мы не ванги, кинь код компонента
источник

I

Isak in Dagger 2
public AppComponent buildComponent() {
       return DaggerAppComponent.builder()
               .contextModule(new ContextModule(this))
               .build();
   }
источник

ES

Egor Sigolaev in Dagger 2
Isak
public AppComponent buildComponent() {
       return DaggerAppComponent.builder()
               .contextModule(new ContextModule(this))
               .build();
   }
Найс код, где анотация компонента? Это больше на псевдо код похоже, нежели на реальный
источник

I

Isak in Dagger 2
это в App же, а как должно еще вызываться? вроде так работало до этого
источник

I

Isak in Dagger 2
с support на X проект чужой поднимаю просто и такая проблема вылезла
источник
2020 November 24

S

Sergey in Dagger 2
Привет! А насколько это критично, если один класс проинициализировать как поле, а потом отдавать в provide методы его?
источник