无法访问 'kotlinx.coroutines.CoroutineScope',它是 'androidx.lifecycle.LifecycleCoroutineScope' 的超类型

Cannot access 'kotlinx.coroutines.CoroutineScope' which is a supertype of 'androidx.lifecycle.LifecycleCoroutineScope'

尝试使用房间 api 并且必须处理您知道为什么的异步任务。 我选择了 kotlin 协程和 androidx.lifecycle。尝试编写一些代码并在 IDE

中显示 2 个错误

无法访问 'kotlinx.coroutines.CoroutineScope',它是 'androidx.lifecycle.LifecycleCoroutineScope' 的超类型。检查您的模块 classpath 是否缺少或冲突的依赖项 无法访问 class 'kotlinx.coroutines.Job'。检查您的模块 classpath 是否缺少或冲突的依赖项 error

这是我的 gradle 模块

plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'

}

android {
    compileSdk 31

    defaultConfig {
        applicationId "com.jacksafblaze.sqlitedemo"
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildFeatures{
        viewBinding true
    }
    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.room:room-ktx:2.3.0"
    implementation "androidx.room:room-runtime:2.3.0"
    kapt "androidx.room:room-compiler:2.3.0"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.4.0"
    implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.0"
    implementation'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0'
    implementation'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:5'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

和gradle项目

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:7.0.3"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我尝试使缓存无效并重新启动,从头开始重新创建应用程序,并重新安装 android studio,但我仍然遇到此错误。

已升级 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0' 至 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0-RC' 一切正常

我有同样的问题,如果我在 class 中手动添加导入项目将编译但 IDE 仍然会显示错误。

如果您不想等待协同程序-android 1.6 版本手动添加导入是一种解决方法,但您将没有自动完成功能。

Android Studio build without autocompletion example

room、moshi 和所有使用 kapt 的库也可能有一些问题,您可以尝试更新到最新版本 (beta/RC) 看看问题是否会在新版本中得到解决。

例如,当我写这行的时候,moshi 还不兼容kotlin 1.6,计划尽快发布修复,详情见here