为什么 androidx.room.RoomDatabase 不被识别?

Why androidx.room.RoomDatabase is not recognised?

我正在学习模块化,但在我的模块之一中 androidx.room.* 未被识别。降级 Room 版本仅对 @Database 注释有帮助。此外,模块似乎看不到 Room.roomKtx 实现,因为快速帮助建议将此实现添加到 build.gradle。我的 kotlin 版本1.6.21

ProfileDatabase.kt

import androidx.room.Database
import androidx.room.RoomDatabase
import com.example.modules.Gift
import com.example.modules.Profile

@Database(
    entities = [Profile::class, Gift::class],
    version = 1
)
abstract class ProfileDatabase: RoomDatabase() {
    abstract val profileDao: ProfileDao

    companion object {
        const val DATABASE_NAME = "profile_db"
    }
}

build.gradle(:profileDatabase)

apply {
    from("$rootDir/library-build.gradle")
    plugin 'kotlin-kapt'
}

dependencies {
    implementation(project(':modules'))
    implementation Kotlinx.coroutinesCore

    implementation Room.runtime
    implementation Room.roomKtx
    kapt Room.compiler

}

Room.kt

object Room {
    private const val roomVersion = "2.4.2"
    const val runtime = "androidx.room:room-runtime:$roomVersion"
    const val compiler = "androidx.room:room-compiler:$roomVersion"
    const val roomKtx = "androidx.room:room-ktx:$roomVersion"
}

我觉得是正确的。但是您是否在正确的构建中添加了 Room 依赖项。gradle-file?您在导入 Room 时在同一个 gradle 文件中导入“模块”模块,我怀疑您已将数据库实现放入您正在导入的模块中。

问题是错误的“模块类型”。我使用 apply plugin:'java-library',
但应该使用 apply plugin:'com.android.library'.