我正在Surface
中创建一个自定义复选框
,它具有Modifi. clickable
:
Surface(
modifier = Modifier
.clickable(
enabled = enabled,
interactionSource = interactionSource,
indication = rememberRipple(),
role = Role.Checkbox,
onClick = { onCheckedChange(!checked) }
)
.then(modifier),
) {
Row {
Checkbox(checked = checked, onCheckedChange = {}, colors = colors)
Text(text = text ?: "")
}
}
当我尝试构建它时,我在IR降低错误错误期间得到异常:
org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering
File being compiled: /home/rene/AndroidStudioProjects/pass13/app/src/main/java/com/aresid/simplepasswordgeneratorapp/ui/widgets/Checkbox.kt
在此处查看完整的堆栈跟踪。
删除Moditier. clickable
可以解决构建问题。
我已经尝试了升级/降级一些版本,但没有正常工作。
目前,我正在使用这些版本:
ext.versions = [
'compileSdk': 31,
'targetSdk' : 30,
'minSdk' : 26,
'kotlin' : '1.5.30',
'navigation': '2.3.5',
'compose' : '1.0.2'
]
就我而言,我忘了添加build. gradle
android {
...
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.0.3'
kotlinCompilerVersion '1.5.30'
}
}
所以我通过他们的问题跟踪器与JetBrains团队取得了联系,正如@Philip Dukhov所建议的那样,他们解决了我的问题:https://youtrack.jetbrains.com/issue/KT-48815.
我在我的应用程序的build. gradle
文件中使用了kotlinCompilerExtensionVersion=versions.comeVersion
,这是不正确的。version.comeVersion
是Gradle提供的东西,但它似乎已被弃用。自己应该手动编写他们正在使用的版本。
确保您已将撰写添加到您的gradle中,您可以将其添加到android{…}
块中。参考以下内容添加撰写:
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion compose_version
}