android - 尝试使用android创建房间数据库,但不断出现依赖错误

标签 android kotlin android-room

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
评估项目 ':app' 时出现问题。

Could not find method kapt() for arguments [androidx.room:room-compiler:2.3.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.


///////////////////////////////////
//下面的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")

}

最佳答案

您似乎已将一堆行复制到您的build.gradle 中。逐字逐句地从 Google 的文档中获取。不幸的是,他们的文档有问题。特别是,其中许多行代表选择,您需要选择您需要的那些。特别是,选择以下两行之一:

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 block 在文件的顶部。如果您选择kapt行,您需要添加 id 'kotlin-kapt' .我没用过ksp选项,不知道你需要什么插件,如果有的话。

关于android - 尝试使用android创建房间数据库,但不断出现依赖错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68688349/

相关文章:

java - 从左边框滑动以打开 Activity

android - 数据未正常更新(房间数据库)

android - 从线程传递消息以更新 UI

android - 在 Android 上旋转大图像

java - Android MediaPlayer SeekTo 函数解决方法

android - 主键不是增加房间android

android - 如何仅在 Room 实体为空时更新它的列?

android - 如何在 ContactsContract 中创建用户配置文件?

collections - Kotlin 标准集合库时间复杂度是否有任何引用?

kotlin - 如何通过值变化将对象分组