Desktop Compose应用运行抛出UnsatisfiedLinkError错误求助
Desktop Compose项目运行抛出UnsatisfiedLinkError异常的解决建议
问题描述
数月未运行的Desktop Compose应用,现在在IDE或Gradle中启动均失败,抛出java.lang.UnsatisfiedLinkError异常,具体涉及Skia Native方法调用失败。
环境信息
项目插件版本(build.gradle.kts):
plugins { kotlin("multiplatform") version "1.8.20" id("org.jetbrains.compose") version "1.4.1" id("io.realm.kotlin") version "1.7.1" }
完整报错信息:
Exception in thread "main" java.lang.UnsatisfiedLinkError: 'void org.jetbrains.skia.CanvasKt._nTranslate(long, float, float)' at org.jetbrains.skia.CanvasKt._nTranslate(Native Method) at org.jetbrains.skia.CanvasKt.access$_nTranslate(Canvas.kt:1) at org.jetbrains.skia.Canvas.translate(Canvas.kt:1085) at androidx.compose.ui.graphics.SkiaBackedCanvas.translate(SkiaBackedCanvas.skiko.kt:85) at androidx.compose.ui.graphics.drawscope.CanvasDrawScopeKt$asDrawTransform$1.inset(CanvasDrawScope.kt:763) at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0(Painter.kt:218) at androidx.compose.ui.graphics.painter.Painter.draw-x_KDEd0$default(Painter.kt:185) at androidx.compose.ui.graphics.PainterImage.asBitmap(DesktopImageConverters.desktop.kt:164) at androidx.compose.ui.graphics.PainterImage.getResolutionVariant(DesktopImageConverters.desktop.kt:151)
解决建议
- 清理缓存并重构项目:执行Gradle的
clean和build任务,或者在IDE中选择「Invalidate Caches / Restart」,彻底清除旧构建缓存和Skia本地库缓存。 - 适配插件版本兼容性:Compose Desktop 1.4.1与Kotlin 1.8.20可能存在Skia依赖适配问题,尝试升级Compose插件到1.5.x及以上兼容版本,同时确保Kotlin版本与Compose版本匹配。
- 重新下载完整依赖:删除项目根目录下的
.gradle文件夹和build文件夹,再执行gradle sync操作,强制重新下载所有依赖(包括Skia的Native库文件)。 - 检查JDK版本:确保使用JDK 11或17版本,避免JDK版本过高/过低导致Native库加载失败。
- 重新解析Compose依赖:临时注释
build.gradle.kts中的Compose插件配置,同步项目后再取消注释,触发依赖重新解析。
内容的提问来源于stack exchange,提问作者Osman
相关产品推荐
相关产品推荐

