chr*_*tel 11 android dagger kotlin-coroutines dagger-hilt
不确定为什么构建失败。一切似乎都在受控之中
\nclass MapObjectRepositoryIMPL @Inject constructor(\n @ApplicationContext context : Context,\n val mapObjectDao: MapObjectDao,\n val barrechatNetwork: BarreNetwork,\n @DefaultDispatcher private val defaultScope: CoroutineContext\n) : MapObjectRepository {\n\nRun Code Online (Sandbox Code Playgroud)\n@Module\n@InstallIn(ApplicationComponent::class)\nobject DispatcherModule {\n\n @DefaultDispatcher\n @Provides\n fun providesDefaultDispatcher(): CoroutineDispatcher = Dispatchers.Default\n\n @IoDispatcher\n @Provides\n fun providesIoDispatcher(): CoroutineDispatcher = Dispatchers.IO\n\n @MainDispatcher\n @Provides\n fun providesMainDispatcher(): CoroutineDispatcher = Dispatchers.Main\n}\n\n@Qualifier\n@Retention(AnnotationRetention.BINARY)\nannotation class IoDispatcher\n\n@Qualifier\n@Retention(AnnotationRetention.BINARY)\nannotation class MainDispatcher\n\n@Qualifier\n@Retention(AnnotationRetention.BINARY)\nannotation class DefaultDispatcher\nRun Code Online (Sandbox Code Playgroud)\n我收到的错误是这样的,但看起来我正确提供了所有内容,限定符和对存储库类的注入,这很奇怪......
\nANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1C:\\Users\\Anon\\AndroidStudioProjects\\Barrechat192\\app\\build\\generated\\source\\kapt\\debug\\com\\example\\barrechat192\\BarreApp_HiltComponents.java:163: error: [Dagger/MissingBinding] @com.example.barrechat192.di.DefaultDispatcher kotlin.coroutines.CoroutineContext cannot be provided without an @Provides-annotated method.\n public abstract static class ApplicationC implements BarreApp_GeneratedInjector,\n ^\n @com.example.barrechat192.di.DefaultDispatcher kotlin.coroutines.CoroutineContext is injected at\n com.example.barrechat192.data.repositories.IMPL.MapObjectRepositoryIMPL(\xef\xbf\xbd, defaultScope)\n com.example.barrechat192.data.repositories.IMPL.MapObjectRepositoryIMPL is injected at\n com.example.barrechat192.di.RepositoryModule.bindMapObjectRepository(mapObjectRepositoryIMPL)\n javax.inject.Provider<com.example.barrechat192.data.repositories.MapObjectRepository> is injected at\n com.example.barrechat192.ui.activities.mainactivity.barremap.BarreMapViewModel_AssistedFactory(\xef\xbf\xbd, mapObjectRepository)\n com.example.barrechat192.ui.activities.mainactivity.barremap.BarreMapViewModel_AssistedFactory is injected at\n com.example.barrechat192.ui.activities.mainactivity.barremap.BarreMapViewModel_HiltModule.bind(factory)\n java.util.Map<java.lang.String,javax.inject.Provider<androidx.hilt.lifecycle.ViewModelAssistedFactory<? extends androidx.lifecycle.ViewModel>>> is injected at\n androidx.hilt.lifecycle.ViewModelFactoryModules.ActivityModule.provideFactory(\xef\xbf\xbd, viewModelFactories)\n @dagger.hilt.android.internal.lifecycle.DefaultActivityViewModelFactory java.util.Set<androidx.lifecycle.ViewModelProvider.Factory> is requested at\n dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories.ActivityEntryPoint.getActivityViewModelFactory() [com.example.barrechat192.BarreApp_HiltComponents.ApplicationC ? com.example.barrechat192.BarreApp_HiltComponents.ActivityRetainedC ? com.example.barrechat192.BarreApp_HiltComponents.ActivityC]\n The following other entry points also depend on it:\n dagger.hilt.android.internal.lifecycle.DefaultViewModelFactories.FragmentEntryPoint.getFragmentViewModelFactory() [com.example.barrechat192.BarreApp_HiltComponents.ApplicationC ? com.example.barrechat192.BarreApp_HiltComponents.ActivityRetainedC ? com.example.barrechat192.BarreApp_HiltComponents.ActivityC ? com.example.barrechat192.BarreApp_HiltComponents.FragmentC][WARN] Incremental annotation processing requested, but support is disabled because the following processors are not incremental: androidx.room.RoomProcessor (DYNAMIC).\n\nRun Code Online (Sandbox Code Playgroud)\n
我刚刚对此进行了测试,问题出在这一行:
@DefaultDispatcher private val defaultScope: CoroutineContext
Run Code Online (Sandbox Code Playgroud)
CoroutineContext将type替换为CoroutineDispatcher,它将按预期工作。
| 归档时间: |
|
| 查看次数: |
3528 次 |
| 最近记录: |