【发布时间】:2021-09-18 11:26:48
【问题描述】:
我正在一个 Surface 中创建一个自定义 Checkbox,它有一个 Modifier.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 ?: "")
}
}
当我尝试构建它时,我收到 Exception during IR lowering error 错误:
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
查看完整的堆栈跟踪 here。
删除Modifier.clickable 解决了构建问题。
我已经尝试升级/降级某些版本,但没有任何工作正常。
目前,我正在使用这些版本:
ext.versions = [
'compileSdk': 31,
'targetSdk' : 30,
'minSdk' : 26,
'kotlin' : '1.5.30',
'navigation': '2.3.5',
'compose' : '1.0.2'
]
有人知道如何解决这个问题吗?
【问题讨论】:
-
compose
1.0.2不支持 kotlin1.5.30,它需要1.5.21。如果需要使用1.5.30,可以切换到alpha1.1.0-alpha03。 -
@PhilipDukhov 感谢您的回答。我不需要 Kotlin 版本 1.5.30,但不幸的是,降级到 1.5.21 会导致完全相同的错误。在此处查看完整的堆栈跟踪 pastebin.com/qXpyF8p4
-
很难说到底是什么导致了错误,你的代码对我来说很好。首先确保您使用的是最新的 AS,即北极狐 | 2020.3.1 补丁 2。如果你已经在使用它,
BackendException表示 compose 编译器或 kotlin 后端的错误,我建议你将它报告给compose issue tracker 和JetBrains issue tracker,包括你的 Android 的完整项目和版本Studio,因此可以轻松复制 -
@PhilipDukhov 再次感谢。 Android Studio 是最新的。我在您发送给我的每个跟踪器中都创建了错误。让我们期待最好的!
-
@RenéJörgSpies 我遇到了类似的问题...您能提供该问题的链接
标签: android kotlin android-jetpack-compose