Android应用如何添加编译器参数消除@OptIn注解警告
消除@OptIn注解配套编译器参数警告的操作方法
使用@OptIn(ExperimentalFoundationApi::class)时弹出该警告,是因为@OptIn注解本身属于需要显式授权的实验性特性,需要给Kotlin编译器配置对应参数才能消除提示,具体操作如下:
- 打开使用Compose代码的对应模块(绝大多数场景是
app模块)的构建脚本,不要选错成项目根目录的构建文件:
注意:配置必须写在模块级构建文件中,写在根目录构建文件不会生效- 老项目一般使用Groovy语法,对应文件名为
build.gradle - 新版本Android Studio新建项目默认使用Kotlin DSL,对应文件名为
build.gradle.kts
- 老项目一般使用Groovy语法,对应文件名为
- 在文件的
android配置块中找到kotlinOptions子块,追加编译器参数配置:
若为Groovy语法的build.gradle,配置示例:
android { // 原有compileSdk、defaultConfig等配置无需改动 kotlinOptions { // 原有jvmTarget等配置无需改动 freeCompilerArgs += [ "-opt-in=kotlin.RequiresOptIn", // 可选:加上这行后全局默认允许Foundation实验API,无需逐处写@OptIn注解 "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi" ] } }
若为Kotlin DSL语法的build.gradle.kts,配置示例:
android { // 原有compileSdk、defaultConfig等配置无需改动 kotlinOptions { // 原有jvmTarget等配置无需改动 freeCompilerArgs += listOf( "-opt-in=kotlin.RequiresOptIn", // 可选:加上这行后全局默认允许Foundation实验API,无需逐处写@OptIn注解 "-opt-in=androidx.compose.foundation.ExperimentalFoundationApi" ) } }
- 配置完成后点击Android Studio顶部弹出的
Sync Now按钮,等待Gradle同步完成,警告就会消失。
补充:如果不想全局放开Foundation实验API的使用权限,只需要添加
"-opt-in=kotlin.RequiresOptIn"这一条参数即可,代码里保留原有的@OptIn(ExperimentalFoundationApi::class)注解,警告同样会消除。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

