我正在尝试将Room集成到我的kotlin项目中,该项目也使用了数据绑定。我已经实现了所有必需的类(我认为是这样!),但是当我尝试构建项目时,我收到了以下错误消息,并且无法找出导致问题的原因这个错误或我想念的是什么
这是构建日志
e: [PATH_TO_PROJECT]\dataaccess\local\AppDatabase.java:7: error: android.arch.persistence.room.RoomProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
public abstract class AppDatabase extends android.arch.persistence.room.RoomDatabase {
^
e: [PATH_TO_PROJECT]\dataaccess\local\BusinessLocalDataSource.java:7: error: android.arch.persistence.room.RoomProcessor was unable to process this class because not all of its dependencies could be resolved. Check for compilation errors or a circular dependency with generated code.
public abstract class BusinessLocalDataSource implements [PACKAGE].dataaccess.local.BaseDao<[PACKAGE].dataaccess.local.model.Business>, [PACKAGE].dataaccess.BusinessDataSource {
^
e: …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用了 Jetpack 的Paging 3库来处理数据分页。我有一个用例,当用户更改搜索请求中的某些内容(例如添加/删除一些过滤器)时,我必须调用 API 并根据新的搜索请求使用新数据重新填充我的列表。但是当我创建新Pager实例并将其传递给我的PagingDataAdapter适配器时,它会抛出:
java.lang.IllegalStateException: Collecting from multiple PagingData concurrently is an illegal operation.
Run Code Online (Sandbox Code Playgroud)
我的实现是这样的:
存储库
class Repository {
fun getDataStream(request: Request): Flow<PagingData<Response>> {
return Pager(
config = PagingConfig(
pageSize = 10,
initialLoadSize = 10,
prefetchDistance = 3
),
initialKey = 1,
pagingSourceFactory = {
DataPagingSource(
request = request,
repository = this
)
}
).flow
}
fun getData(page: Int, request: Request): Result<Response> {
return remoteDataSource.getData(page, request)
}
}
Run Code Online (Sandbox Code Playgroud)
数据分页源
class DataPagingSource(
private …Run Code Online (Sandbox Code Playgroud)