如何为Kotlin桌面Compose示例项目启用@Preview注解?
解决Compose-JB中@Preview注解无法解析的问题
核心原因
你在跨平台Compose的commonMain源集里添加了Android专属的ui-tooling-preview依赖,但@Preview是Android Compose工具链的专属注解,跨平台公共模块(common)无法直接使用;同时Compose for Desktop的预览机制和Android完全不同,不能直接复用Android的预览依赖。
具体解决方案
针对Android平台的预览配置
- 将
ui-tooling-preview依赖从commonMain移到androidMain源集,同时补充ui-tooling的debug依赖:named("androidMain") { dependencies { // 保留原有Android相关依赖 implementation("androidx.compose.ui:ui-tooling-preview:1.1.1") debugImplementation("androidx.compose.ui:ui-tooling:1.1.1") } } - 在
androidMain目录下的Composable函数上添加@Preview注解,或者在common模块的Composable中通过expect/actual机制适配预览逻辑。
针对Desktop平台的预览配置
Compose for Desktop不需要Android的ui-tooling-preview依赖,有两种预览方式:
- 直接编写启动入口预览:
fun main() = application { Window(onCloseRequest = ::exitApplication) { // 填入你要预览的Composable组件,比如示例中的CodeViewer CodeViewer() } } - 使用IDEA内置预览功能:确保IDEA的Compose Multiplatform插件版本与项目使用的Compose-JB 1.1.x版本兼容,直接在Composable函数旁点击预览按钮即可。
最后一步
修改build.gradle.kts后,点击IDEA右上角的「Sync Project with Gradle Files」按钮同步依赖,重新编译项目即可。
内容的提问来源于stack exchange,提问作者ildvzg68472
相关产品推荐
相关产品推荐

