WIS*_*SHY 0 android dagger dagger-hilt
我有一个活动视图模型
\n@HiltViewModel\nclass MainViewModel @Inject constructor(\nprivate val repository: UserRepository\n) : ViewModel() {\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n存储库接口
\ninterface UserRepository {\nsuspend fun loginUser(username: String, password: String): Pair<Boolean, String>\n}\n
Run Code Online (Sandbox Code Playgroud)\n用户数据源类如下
\ninternal class UserDataSource @Inject constructor(private val octaveApi: OctaveApi) :\nUserRepository {\n\noverride suspend fun loginUser(username: String, password: String): Pair<Boolean, String> {\n return Pair(false, "unsucess")\n}\n}\n
Run Code Online (Sandbox Code Playgroud)\n这是我的匕首实现
\n@Module\n@InstallIn(SingletonComponent::class)\nabstract class ApiModule {\n\n @Module\n @InstallIn(SingletonComponent::class)\n object Providers {\n\n @Provides\n @Singleton\n internal fun provideOctaveApi(retrofit: Retrofit): OctaveApi =\n retrofit.create(OctaveApi::class.java)\n }\n}\n\n@Module\n@InstallIn(ActivityRetainedComponent::class)\nabstract class RetainedDataModule {\n\n @Binds\n internal abstract fun bindUserRepository(userDataSource: UserDataSource): UserRepository\n}\n
Run Code Online (Sandbox Code Playgroud)\n当我构建项目时,我收到此错误
\n/OctaveDashboard/app/build/generated/source/kapt/stagingExternalDebug/com/octave/OctaveApplication_HiltComponents.java:125: error: [Dagger/MissingBinding] com.octave.data.user.UserRepository cannot be provided without an @Provides-annotated method.\n public abstract static class SingletonC implements OctaveApplication_GeneratedInjector,\n ^\n com.octave.data.user.UserRepository is injected at\n com.octave.MainViewModel(cornersRepository)\n com.octave.MainViewModel is injected at\n com.octave.MainViewModel_HiltModules.BindsModule.binds(vm)\n @dagger.hilt.android.internal.lifecycle.HiltViewModelMap java.util.Map<java.lang.String,javax.inject.Provider<androidx.lifecycle.ViewModel>> is requested at\n dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.ViewModelFactoriesEntryPoint.getHiltViewModelMap() [com.octave.OctaveApplication_HiltComponents.SingletonC \xe2\x86\x92 com.octave.OctaveApplication_HiltComponents.ActivityRetainedC \xe2\x86\x92 com.octave.OctaveApplication_HiltComponents.ViewModelC]\n
Run Code Online (Sandbox Code Playgroud)\n似乎无法弄清楚是什么导致了这个问题。
\n 归档时间: |
|
查看次数: |
10800 次 |
最近记录: |