kotlin: 报错:@OptIn(kotlinx.serialization.InternalSerializationApi::class)
一,报错信息:
e: file:///Users/liuhongdi/StudioProjects/Okdemo2/app/src/main/java/com/example/okdemo2/fragment/ApiService.kt:14:67
This declaration needs opt-in. Its usage must be marked with '@kotlinx.serialization.InternalSerializationApi'
or '@OptIn(kotlinx.serialization.InternalSerializationApi::class)'
二,解决:
1, 给报错的类或方法加上相应的注解:
例子:
interface ApiService {
// 用户列表
@OptIn(InternalSerializationApi::class)
@GET("/json.php")
suspend fun userList(@QueryMap map: MutableMap<String, Any>): ApiResponse<UserList>
}
2,如果不想给每个类或方法添加注解,
修改build.gradle.kts,增加:
tasks.withType<KotlinCompile>().configureEach {
compilerOptions {
optIn.add("kotlin.ExperimentalStdlibApi")
freeCompilerArgs.addAll(
listOf(
"-Xskip-prerelease-check",
"-Xsuppress-version-warnings",
"-Xallow-unstable-dependencies"
)
)
}
}