Jetpack Compose Kotlin绘制椭圆报错:需-Xjvm-default选项怎么解决?
解决Jetpack Compose中Shape接口继承的JvmDefault错误
方案一:启用Kotlin编译选项-Xjvm-default
报错原因是Shape接口包含带@JvmDefault注解的默认方法,Kotlin默认不允许继承这类接口,需在模块的Gradle配置中添加编译参数:
针对KTS格式的build.gradle.kts
android { // ...其他配置 kotlinOptions { freeCompilerArgs += "-Xjvm-default=all" } }
针对Groovy格式的build.gradle
android { // ...其他配置 kotlinOptions { freeCompilerArgs += "-Xjvm-default=all" } }
添加后同步Gradle,编译报错即可消除。
方案二:直接使用Compose内置的OvalShape
你自定义的CustomOvalShape功能和Compose官方提供的OvalShape完全一致,无需重复实现,直接替换使用即可:
// 示例:使用内置OvalShape裁剪组件 Box( modifier = Modifier .size(200.dp) .clip(OvalShape) .background(Color.Blue) )
官方内置的形状经过优化,更适合直接复用,还能避免编译配置的麻烦。
内容的提问来源于stack exchange,提问作者Harry
相关产品推荐
相关产品推荐

