我正在学习模块化,在我的一个模块androidx.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"
}
我看是正确的。但是您是否在正确的build.gradle-file中添加了Room依赖?您正在导入"模块"模块在同一个gradle文件中,因为你正在导入房间,我怀疑你已经把DB实现在你正在导入的模块。
问题是错误的"模块类型"。我使用apply plugin:'java-library'
,
,但应该使用apply plugin:'com.android.library'
。