Compose Multiplatform Android目标平台下二级模块资源加载失败问题排查求助
各位大佬好,我目前在开发一个Jetpack Compose Multiplatform项目,碰到了一个资源加载的棘手问题,想请教下有没有同行遇到过类似情况,或者能帮我排查下问题所在?
我在项目的ui-system二级模块中,将一个drawable资源放在了如下路径:ui-system/src/commonMain/composeResources/drawable/compose-multiplatform.xml
当我在Android平台上运行下面的测试Composable代码时:
@Composable fun Test() { Image( painter = painterResource(Res.drawable.compose_multiplatform), contentDescription = null ) }
运行时直接抛出了资源缺失的异常,完整错误栈信息如下:
Caused by: org.jetbrains.compose.resources.MissingResourceException: Missing resource with path: composeResources/reproduce.ui_system.generated.resources/drawable/compose-multiplatform.xml
at org.jetbrains.compose.resources.ResourceReader_androidKt$getPlatformResourceReader$1.getResourceAsStream(ResourceReader.android.kt:82)
at org.jetbrains.compose.resources.ResourceReader_androidKt$getPlatformResourceReader$1.read(ResourceReader.android.kt:29)
...
我已经确认过:
- 资源文件确实存在于指定路径
- 资源引用是自动生成的,看起来没有问题
ui-system模块已经引入了org.jetbrains.compose.resources依赖
而且我已经尝试过以下排查手段:
- 执行Android Studio的Clean Project和Rebuild Project操作
- 检查打包后的APK,确认资源是否被正确包含进去
但问题依然存在,Android平台运行时还是找不到这个二级模块里的资源。有没有人在Compose Multiplatform的二级模块中遇到过这种资源加载失败的问题?我是不是漏掉了什么关键配置或者步骤?
内容来源于stack exchange

