You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

集成Hilt提供Retrofit服务时出现‘not a valid name: default’错误

问题分析与解决方案

这个错误Cause: not a valid name: default通常是Hilt处理依赖注入注解时遇到了无效的命名配置,结合你提供的Retrofit和ViewModel相关代码,常见触发场景和修复方式如下:

1. 检查@Provides方法的Qualifier注解

如果你的AppModule中为Retrofit或其服务定义了Qualifier,但注解名称使用了关键字(比如default)或非法字符,就会触发该错误。

错误示例:

@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class default // 使用关键字default,属于非法命名

修复方式:
将Qualifier名称改为合法标识符,比如:

@Qualifier
@Retention(AnnotationRetention.BINARY)
annotation class DefaultRetrofit

之后在@Provides方法和依赖注入处统一使用该Qualifier:

@Provides
@DefaultRetrofit
fun provideRetrofit(): Retrofit {
    return Retrofit.Builder()
        .baseUrl("https://api.example.com/")
        .addConverterFactory(GsonConverterFactory.create())
        .build()
}

2. 检查ViewModel的绑定配置

如果ViewModelModule中使用@Binds/@Provides提供ViewModel时,配置了非法命名的Qualifier,或者默认绑定存在冲突,也会引发错误。

错误示例:

@Module
@InstallIn(ViewModelComponent::class)
abstract class ViewModelModule {
    @Binds
    @default // 同样使用了非法Qualifier名称
    abstract fun bindMyViewModel(viewModel: MyViewModel): ViewModel
}

修复方式:
确保ViewModel绑定的Qualifier名称合法,若不需要区分多个实例,直接移除Qualifier使用默认绑定:

@Module
@InstallIn(ViewModelComponent::class)
abstract class ViewModelModule {
    @Binds
    abstract fun bindMyViewModel(viewModel: MyViewModel): ViewModel
}

同时检查ViewModel构造函数是否正确添加@Inject注解:

class MyViewModel @Inject constructor(
    private val apiService: ApiService // 确保ApiService注入配置无问题
) : ViewModel() {
    // ...
}

3. 检查Retrofit服务的注入逻辑

确保AppModule中提供ApiService的方法配置正确,避免重复绑定或命名冲突:

@Provides
fun provideApiService(@DefaultRetrofit retrofit: Retrofit): ApiService {
    return retrofit.create(ApiService::class.java)
}

4. 清理重建项目

缓存的构建文件可能导致注解处理器异常,执行以下操作:

  • 点击Android Studio的Build > Clean Project,再点击Build > Rebuild Project
  • 或使用命令行:./gradlew clean assembleDebug

内容的提问来源于stack exchange,提问作者Dennis Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 10:02:18