【问题标题】:Android Lint : Kotlin Dispatchers unresolved reference but compilation workingAndroid Lint:Kotlin Dispatchers 未解决的参考,但编译工作
【发布时间】:2021-02-17 07:43:45
【问题描述】:

我已经尝试过使缓存失效清理构建和重建项目也完成了。但我仍然不断收到未解决的参考:调度程序、启动、withContext、延迟,...但是 CoroutineScope 未标记为未解决的参考,import kotlinx .coroutines.* 未标记为未知,并且项目正在编译(它已经工作了几个月,它不是最近的项目)。

Android 工作室:4.0.1

设置 > 语言和框架 > Kotlin:当前 kotlin 插件版本:1.4.10-release-Studio4.0-1

build.gradle

buildscript {
    ext {
        // KOTLIN
        kotlin_coroutines_version = '1.3.5'
        kotlin_version = '1.3.71'
       ...
    }

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

module_build.gradle

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 29

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 29
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.pro'
        }
    }
compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }

    testOptions {
        unitTests.returnDefaultValues = true
        unitTests {
            all {
                testLogging {
                    events 'passed', 'skipped', 'failed'
                }
            }
        }
    }
}

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
    api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
}

编辑: 我的代码示例,但请记住此错误出现在我项目中的所有文件中(几乎 100 个文件)。而且我的代码正在运行,因为我可以从一周内开始编写它。

init {
        CoroutineScope(Dispatchers.Main).launch {
            ...
            withContext(Dispatchers.IO) {
                delay(1000 * 5)
            }
        }
    }

【问题讨论】:

  • 你能显示你的代码吗
  • 你想在哪里使用协程?您是在库模块还是应用模块上尝试?
  • @tyczj 我编辑了我的帖子,但就像我说的,错误出现在整个项目中,我的项目正在编译。所以我认为问题不在于代码。否则我和同事将无法构建和工作。 linter 错误仅在我的 PC 上。
  • @JeelVankhede 无处不在,在一百多个文件中。一周前一切正常。它仍在工作。这只是一个 Android Lint 问题。我们正在构建一个应用程序,我们正在使用多模块。未解决的引用错误出现在每个模块中。
  • 哦,我只是想确保它是跨模块的。跟进问题,最近是否更新了任何依赖项或 kotlin 插件?如果对我来说,这感觉像是一些缓存问题。我还会检查协同程序版本升级后底层包结构/导入是否没有改变。

标签: android android-studio kotlin kotlin-coroutines android-lint


【解决方案1】:

我找到了两种修复它的方法(尽管仍然不确定为什么会出现这个错误):

  • 在我的笔记本电脑上,我只是将 Android Studio 更新到 4.1.0 版,重启后,所有 lint 错误都消失了。

  • 在我同事的笔记本电脑上,我们将 kotlin_coroutines_version 从 1.3.5 升级到 1.4.0+:

    api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
    api "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    相关资源
    最近更新 更多