我正在Surface
中创建自定义Checkbox
,该Surface
具有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'
]
9条答案
按热度按时间tkclm6bt1#
在我的情况下,我忘记添加在build.gradle中
8wtpewkr2#
所以我按照@PhilipDukhov的建议,通过JetBrains的问题跟踪器与他们取得了联系,他们解决了我的问题:https://youtrack.jetbrains.com/issue/KT-48815。
我在我的应用的
build.gradle
文件中使用了kotlinCompilerExtensionVersion = versions.composeVersion
,这是不正确的。versions.composeVersion
是Gradle提供的,但似乎已弃用。您应该自己手动编写正在使用的版本。lmvvr0a83#
在我的情况下,我已经创建了独立的模块,以维护组件和主题独立于功能模块。所以更新下面的模块gradle内的android,为我工作。
dgenwo3n4#
这是因为
JetpackCompose
!在gradle 7.2
中,您应该在android
块的build.gradle
中添加以下行:sr4lhrrt5#
确保您已将compose添加到gradle中,您可以将其添加到
android {...}
块中。请参考以下内容添加compose:9w11ddsr6#
这听起来可能违反直觉(毕竟,错误显示为“Backend Internal Error”),但对我来说,重新启动Android Studio客户端修复了它。
e4yzc0pl7#
当我在类的
init
块中向Composable
函数传递一些参数时,发生了这个构建错误:要使其编译无误,应使用辅助构造函数而不是
init {}
块:lnlaulya8#
对我来说,我需要确保两件事:
首先,kotlinCompilerExtensionVersion与其他撰写版本相同(或兼容-请参见以下链接),即
其次,compose_version与您目前的Kotlin插件相容。请在此Compose compatibility map检查
wfsdck309#
我通过以下步骤解决了问题
1.清理项目
1.删除.gradle和.idea文件夹
1.使缓存失效/重新启动
1.同步分级
1.重建项目