我正在使用 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)
}
}