You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Kotlin协程中的‘This declaration needs opt-in’警告?

解决Kotlin协程ExperimentalCoroutinesApi警告问题

你之前的配置无效是因为目标注解不对——你加的kotlin.RequiresOptIn是用来处理自定义的需OptIn注解,而警告提示的是要针对kotlinx.coroutines.ExperimentalCoroutinesApi开启opt-in,所以配置不匹配。

下面给你几种可行的解决办法:

方法一:通过Gradle全局配置(模块级)

修改模块下的build.gradle.kts,替换成针对协程API的正确配置:

android {
    kotlinOptions {
        freeCompilerArgs += listOf("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi")
    }
}

如果想让整个项目的所有模块都生效,可以在项目根目录的build.gradle.kts里添加:

allprojects {
    tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
        kotlinOptions {
            freeCompilerArgs += listOf("-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi")
        }
    }
}

或者更简单,直接在项目根目录的gradle.properties里加一行:

kotlin.opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi

方法二:代码层面局部/全局标记

如果不想全局开启,也可以在代码里针对性标记:

  • 单个函数上标记:
@OptIn(ExperimentalCoroutinesApi::class)
fun yourCoroutineFunction() {
    // 用到ExperimentalCoroutinesApi的代码逻辑
}
  • 整个文件生效(放在包声明之前):
@file:OptIn(ExperimentalCoroutinesApi::class)

package com.your.package.name

// 文件内所有使用该API的代码都不会再触发警告
  • 整个类生效:
@OptIn(ExperimentalCoroutinesApi::class)
class YourCoroutineClass {
    // 类内所有函数都可使用该API
}

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:55:03