将项目更新为稳定的协程Kotlin 1.3.0 + Coroutines 1.0.0错误

时间:2018-10-31 20:38:34

标签: android kotlin kotlinx.coroutines

我在项目中指定了以下内容:

模块

dependencies {
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.0.0'
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.0.0'
  implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version'
}

项目

buildscript {
    ext.kotlin_version = '1.3.0'
    repositories {
        google()
        jcenter()
    }

dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

包装器

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

Gradle同步已成功完成,但是我每次致电

GlobalScope.launch {}

“启动”标记有以下错误:

'不受支持[无法使用api版本低于1.3的发布协程]'

我已经无效并进行了干净的重建-我缺少什么?

**编辑

我可以看到在哪里生成错误:

kotlin / compiler / frontend / src / org / jetbrains / kotlin / resolve / calls / checkers / coroutineCallChecker.kt

fun checkCoroutinesFeature(languageVersionSettings: LanguageVersionSettings, diagnosticHolder: DiagnosticSink, reportOn: PsiElement) {
    if (languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)) {
        if (languageVersionSettings.apiVersion < ApiVersion.KOTLIN_1_3) {
            diagnosticHolder.report(Errors.UNSUPPORTED.on(reportOn, "cannot use release coroutines with api version less than 1.3"))
        }
        return
    }

6 个答案:

答案 0 :(得分:7)

您在依赖项中缺少标准库。该插件会进行检查以找出要使用的api版本。

添加"org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"作为依赖来解决您的错误。

答案 1 :(得分:2)

使用IntelliJ 2019.2.1 + Gradle对我有效的方法

File => Project Structure

然后从“项目设置”对话框中选择Modules,并为每个Kotlin模块确保语言版本 API版本匹配。不幸的是,这些设置在每次Gradle同步后都会重置,因此您必须在每次Gradle同步后重复该过程。

enter image description here **。

答案 2 :(得分:1)

右键单击项目名称-> Maven->重新导入。 就我而言,它有所帮助。

答案 3 :(得分:1)

清除m2缓存并重新导入所有依赖项。那应该解决问题。原因是,如果它在此之前运行过,那么您便拥有了所需的所有依赖项,并通过清除缓存来重新获取运行协程所需的所有必需库。

答案 4 :(得分:0)

您需要在Android Studio中执行以下操作:

  1. 文件->关闭项目
  2. 在“快速启动窗口”中选择“导入项目(Eclipse ADT,Gradle等)”选项。

此后,所有警告将消失。

答案 5 :(得分:0)

如果在此之前还可以,那么这可能来自于您新添加的依赖项之一。对我来说就是这种情况,我添加了一个过时的“南瓜”版本,并得到了同样的错误。将“南瓜”更新为最新版本后,一切正常。