web-dev-qa-db-ja.com

安定したコルーチンKotlin 1.3.0 +コルーチン1.0.0エラーへのプロジェクトの更新

プロジェクトで次のように指定しました。

モジュール

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
    }
8
jchristof

M2キャッシュをクリアして、すべての依存関係を再インポートします。これで問題が解決します。理由は、それが以前に機能していた場合、必要なすべての依存関係があり、キャッシュをクリアすることで、コルーチンの実行に必要なすべての必要なライブラリを再フェッチすることです。

1
user7120462

依存関係に標準ライブラリがありません。プラグインはそれを検査して、使用するAPIのバージョンを判別します。

追加 "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"エラーを修正するための依存関係として。

8
Kiskae

プロジェクト名-> Maven-> Reimportを右クリックします。私の場合、それは助けになりました。

4
Dmitry Sokolov

IntelliJ 2019.2.1 + Gradleでうまくいったこと

File => Project Structure

次に、プロジェクト設定ダイアログからModulesを選択し、KotlinモジュールごとにLanguage versionAPIバージョンが一致します。残念ながら、これらの設定はGradleを同期するたびにリセットされるため、Gradleを同期するたびにプロセスを繰り返す必要があります。

enter image description here **。

3
ayvazj

Android Studio:

  1. ファイル->プロジェクトを閉じる
  2. 「クイックスタートウィンドウ」で、「プロジェクトのインポート(Eclipse ADT、Gradleなど)」オプションを選択します。

この後、すべての警告が消えます。

0
Ksenia

これより前に問題がなければ、おそらくこれは新しく追加された依存関係の1つにある可能性があります。これは私にとっても当てはまり、古いバージョンの「スカッシュ」を追加したところ、まったく同じエラーが発生しました。 「スカッシュ」を最新バージョンに更新した後、すべて問題ありません。

0
shervinox