无法访问 '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
尝试使用房间 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