匕首造成的循环依赖

问题描述 投票:0回答:0

我正在使用 MVVM clean arch 遵循多模块架构,我是匕首柄的初学者。所以我有 2 个模块数据和域导致循环依赖我不知道是什么导致了这个错误我是匕首刀柄的初学者如果我做了任何愚蠢的事情我道歉🙃


Error:
* What went wrong:
Circular dependency between the following tasks:
:AppLockFeature:data:compileDebugAidl
\--- :AppLockFeature:domain:compileDebugAidl
     \--- :AppLockFeature:data:compileDebugAidl (*)



//domain module
interface AppLockRepo {
    fun getInstalledApps(): Flow<List<ApplicationInfo>>
}
// data module
class AppLockRepoImpl (val packageManager: PackageManager): AppLockRepo {
    override fun getInstalledApps(): Flow<List<ApplicationInfo>> {
        return flow {
            packageManager.getInstalledApplications(0);
        }
    }
}
//domain module
@Module
@InstallIn(ViewModelComponent::class)
object AppLockDomainModule {

    @ViewModelScoped
    @Singleton
    fun provideUseCases( repo: AppLockRepo): AppLockUseCases {
        return AppLockUseCases(
            GetInstalledApps(repo)
        )
    }
}
//domain module
class GetInstalledApps (
    val repo: AppLockRepo
) {
    operator fun invoke(): Flow<List<ApplicationInfo>>{
        return repo.getInstalledApps()
    }
}
data class AppLockUseCases(
      val getInstalledApps: GetInstalledApps
)
// data module
@Module
@InstallIn(SingletonComponent::class)
object AppLockDataModule {

    @Provides
    fun provideAppList(app:Application): PackageManager {
        return app.packageManager
    }

    @Provides
    fun provideAppLockRepo(packageManager: PackageManager): AppLockRepo {
        return AppLockRepoImpl(packageManager)
    }

}
android dagger dagger-hilt multi-module
© www.soinside.com 2019 - 2024. All rights reserved.