Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

454
Visualizações
Hilt dependency injection in multi-module project

I have two modules in my android app, app and data. data module contains retrofit dependency and app module depends on data module.

app/build.gradle:

implementation project(':data')

implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"

data/build.gradle:

implementation "com.google.dagger:hilt-android:$hilt_version"
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"

implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation "com.squareup.retrofit2:converter-moshi:$retrofit_version"

In data module, I have the following Hilt module:

@Module
@InstallIn(SingletonComponent::class)
internal object DataModule {

    @Singleton
    @Provides
    fun provideRetrofit(): Retrofit {
        return Retrofit.Builder()
            .baseUrl(Constants.API_BASE_URL)
            .addConverterFactory(MoshiConverterFactory.create())
            .build()
    }

    @Singleton
    @Provides
    fun provideLoginApiService(retrofit: Retrofit): LoginApiService {
        return retrofit.create(LoginApiService::class.java)
    }

    @Singleton
    @Provides
    fun provideLoginRepository(loginRepository: LoginRepositoryImpl): LoginRepository {
        return loginRepository
    }

}

Here, LoginApiService and LoginRepositoryImpl are internal in data module and LoginRepository is public (in data module):

@Singleton
internal class LoginRepositoryImpl @Inject constructor(
    private val loginApiService: LoginApiService
) : LoginRepository {
    // ...
}

Now when I try to build the project, I get the following error:

DaggerMyApplication_HiltComponents_SingletonC.java:41: error: package retrofit2 does not exist
import retrofit2.Retrofit;

The error goes away if I add retrofit dependency in my app module which I don't want to do.

What's happening here and how can I resolve this error without adding data module dependencies in app module?

over 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda