【发布时间】:2021-06-10 18:06:03
【问题描述】:
这是我收到的错误消息。我检查了网络,我有所有需要的依赖项,我正确设置了一切。问题是我已经在另一个工作正常的项目上进行了这个设置,但由于某种原因它在这里不起作用。我尝试使缓存无效,重新启动等,但没有任何结果。我对造成这种情况的原因感到非常困惑。
error: cannot access RoomDatabase
return DatabaseModule_ProvideAppRepositoryFactory.provideAppRepository(databaseModule, appDatabase(), ApplicationContextModule_ProvideContextFactory.provideContext(applicationContextModule));
^
class file for androidx.room.RoomDatabase not found
1 error
这是数据库模块
@Module
@InstallIn(SingletonComponent::class)
class DatabaseModule {
@Provides
@Singleton
fun provideAppDatabase(@ApplicationContext context: Context): AppDatabase {
return Room.databaseBuilder(
context,
AppDatabase::class.java, "app-db"
).build()
}
@Provides
fun provideAppRepository(
db: AppDatabase,
@ApplicationContext ctx : Context
): AppRepository {
return AppRepository(db, ctx)
}
这些是我与 Kotlin Kapt 一起的依赖项
Plugins{
id(GradlePluginId.ANDROID_LIBRARY)
id(GradlePluginId.KOTLIN_ANDROID)
id(GradlePluginId.KOTLIN_KAPT)
id(GradlePluginId.HILT_ANDROID)
}
...
implementation(LibraryDependency.ROOM)
implementation(LibraryDependency.ROOM_KTX)
kapt(LibraryDependency.ROOM_COMPILER)
Which is this 2.2.6 version, but i've been using the "2.3.0-beta02" as well
const val ROOM = "androidx.room:room-runtime:${LibraryVersion.ROOM}"
const val ROOM_COMPILER = "androidx.room:room-compiler:${LibraryVersion.ROOM}"
const val ROOM_KTX = "androidx.room:room-ktx:${LibraryVersion.ROOM}"
@Database(entities = [CBImageDataModel::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun imageDao(): ImageDao
}
@Entity(tableName = "images")
@TypeConverters(ImageTypeConverters::class)
data class CBImageDataModel(
@PrimaryKey(autoGenerate = true) val id: Long? = null,
@ColumnInfo(name = "server_id") val serverID: Int
)
class AppRepository @Inject constructor(private val db: AppDatabase, private val context: Context) { ...
【问题讨论】:
标签: android android-gradle-plugin android-room dagger-2 dagger-hilt