Android.com 说要将这些依赖项添加到您的 gradle 文件中。我不断在以kapt和ksp开头的行上遇到错误,说找不到这些方法。有什么想法吗?对不起,我不聪明。
//下面是android说要放进去的
def room_version = "2.3.0"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor "androidx.room:room-compiler:$room_version"
// To use Kotlin annotation processing tool (kapt)
kapt("androidx.room:room-compiler:$room_version")
// To use Kotlin Symbolic Processing (KSP)
ksp("androidx.room:room-compiler:$room_version")
// optional - Kotlin Extensions and Coroutines support for Room
implementation("androidx.room:room-ktx:$room_version")
// optional - RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - RxJava3 support for Room
implementation "androidx.room:room-rxjava3:$room_version"
// optional - Guava support for Room, including Optional and
ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// optional - Test helpers
testImplementation("androidx.room:room-testing:$room_version")
// optional - Paging 3 Integration
implementation("androidx.room:room-paging:2.4.0-alpha04")
构建文件 'C:\Users\tanne\AndroidStudioProjects\LazyAlarm\app\build.gradle' 行: 51
评估项目时出现问题:应用程序。
在org . grad le . API . internal . artifacts . DSL . dependencies . defaultdependencyhandler类型的对象上找不到参数[androidx . room:room-compiler:2 . 3 . 0]的方法kapt()
////////////////////////////////////////////下面的gradle文件
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
}
android {
compileSdk 31
defaultConfig {
applicationId "com.example.lazyalarm"
minSdk 22
targetSdk 31
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.room:room-ktx:2.3.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
def room_version = "2.3.0"
implementation("androidx.room:room-runtime:$room_version")
annotationProcessor "androidx.room:room-compiler:$room_version"
// To use Kotlin annotation processing tool (kapt)
kapt("androidx.room:room-compiler:$room_version")
// To use Kotlin Symbolic Processing (KSP)
ksp("androidx.room:room-compiler:$room_version")
// optional - Kotlin Extensions and Coroutines support for Room
implementation("androidx.room:room-ktx:$room_version")
// optional - RxJava2 support for Room
implementation "androidx.room:room-rxjava2:$room_version"
// optional - RxJava3 support for Room
implementation "androidx.room:room-rxjava3:$room_version"
// optional - Guava support for Room, including Optional and ListenableFuture
implementation "androidx.room:room-guava:$room_version"
// optional - Test helpers
testImplementation("androidx.room:room-testing:$room_version")
// optional - Paging 3 Integration
implementation("androidx.room:room-paging:2.4.0-alpha04")
}
以下内容对我有用。
>
settings.gradle
pluginManagement {
repositories {
gradlePluginPortal()
google()
}
plugins {
id("com.google.devtools.ksp") version "1.6.20-1.0.5"
}
KSP版本参考:Maven存储库:com.google.devtools.ksp
>
app/build.gradle
plugins {
id 'com.google.devtools.ksp' }
implementation("androidx.room:room-runtime:$rootProject.roomVersion")
annotationProcessor("androidx.room:room-compiler:$rootProject.roomVersion")
ksp("androidx.room:room-compiler:$rootProject.roomVersion")
build.gradle
buildscript {
ext {
// app dependencies
kotlinVersion = '1.6.20'
roomVersion = '2.4.2' }
}
试试这个依赖
def room_version = "1.1.1"
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
testImplementation "android.arch.persistence.room:testing:$room_version"
您似乎已将一堆行复制到<code>构建中。gradle文件是谷歌文档中的逐字记录。不幸的是,他们的文档有问题。特别是,这些行中的许多表示选择,您需要选择您需要的。特别是,选择这两行中的一行:
kapt("androidx.room:room-compiler:$room_version")
ksp("androidx.room:room-compiler:$room_version")
...,然后选择以下四行之一:
implementation("androidx.room:room-ktx:$room_version")
implementation "androidx.room:room-rxjava2:$room_version"
implementation "androidx.room:room-rxjava3:$room_version"
implementation "androidx.room:room-guava:$room_version"
然后,根据您从第一对中的选择,您可能需要将另一个插件添加到文件顶部的plugins
块中。如果选择kapt
行,则需要添加id“kotlin kapt”
。我没有使用ksp
选项,也不知道您需要什么插件。
错误:查询有问题:[SQLITE_ERROR]SQL错误或缺少数据库(没有这样的表:任务) 显示了这个错误,我怎么可能修复它? 我正在学习这个教程
我正在使用Room作为应用程序的数据库。我正在用改型从服务器上获取数据。场景是,我有一个名为Photo的类,并用实体进行注释,以供room使用,我使用这个类使用retroft映射API的响应。我需要使用同一个类创建两个表,例如:最新的照片表和流行的照片表。我怎样才能做到这一点。 > 我不想创建一个新的类并使它从另一个类扩展 我有一个想法,通过插入一个新的列,表明照片是流行的或最新的,但我不知道如何
给定如下所示的房间数据库DAO: 是否有一种方法可以在中添加一个记录器或类似的东西,这样我就可以看到哪些语句正在执行。这在开发过程中非常有用,因为我可以立即检查函数是否正确地转换为预期的SQL语句。
https://medium . com/Google-developers/understanding-migrations-with-room-f01e 04 b 07929上有一篇关于房间迁移的很棒的文章 然而,我仍然错过了房间中的“灾难”恢复机制(例如,当发生异常情况时,将清除并重新创建数据库的fallbackToDestructiveRecreationOnMigrationError(
我转换java代码到kotlin代码,我得到类型未解决的java类错误。 我的Java类是 已转换的Kotlin类 非常感谢。