Compose 预览报错:java.lang.NoSuchMethodError

为了方便Image的调用,封装年一个Img方法如下:

kotlin 复制代码
@Composable
fun Img(@DrawableRes id: Int) {
    Image(painterResource(id), "")
}

compose预览界面提示Render problem

kotlin 复制代码
java.lang.NoSuchMethodError: 'void com.example.composeapp.common.WidgetExtKt.Img(int, androidx.compose.runtime.Composer, int)'
  at com.example.composeapp.chat.ChatActivityKt.TopToolbar(ChatActivity.kt:61)
  at com.example.composeapp.chat.ChatActivityKt.ChatPageContent(ChatActivity.kt:48)
  at com.example.composeapp.chat.ComposableSingletons$ChatActivityKt$lambda$1376425372$1.invoke(ChatActivity.kt:75)
  at com.example.composeapp.chat.ComposableSingletons$ChatActivityKt$lambda$1376425372$1.invoke(ChatActivity.kt:74)
  at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.kt:122)

提示找不到WidgetExtKt.Img(int, androidx.compose.runtime.Composer, int)这个方法。

原因

加了@Compose 注解的方法,在编译的之后会生成一个额外的方法。

kotlin 复制代码
Img(int id, Composer composer, int changed)

报NoSuchMethodError,说明编译的时候没有生成这个方法。

需要在build.gradle中加上compose的插件,才会在编译时生成对应的方法。

相关推荐
驰骋工作流8 小时前
流程时效考核的表结构:从待办时限到 WF_CH 考核结果驰骋BPM驰骋低代码低代码工作流引擎
android·低代码·rxjava
传奇开心果编程10 小时前
【Flutter踩坑排雷】第7课:巨型 build 函数坑|全部 UI 写在同一个 build,维护难、隐性异常
android·flutter·ios·移动开发·跨平台·dart·声明式ui
方白羽13 小时前
Android 双开环境底层剖析与风控检测落地
android·安全·app
weixin_5633714714 小时前
Android Studio 2024 版 Device Explorer 打开方法
android·ide·android studio
AIsoft_868917 小时前
职场音频文件怎么整理?录音APP有哪些用法
android·音视频
booboosui17 小时前
第一批个人 Agent 用户正在卸载,问题不在模型,在它住在哪儿
android
洞见前行17 小时前
点击图标到内容出现,你的 App 在这几秒里做了什么:Android 冷启动全链路优化实战
android·性能优化·android studio
凯基迪科技17 小时前
芯片UID绑定修改 加密与逆向修改思路分析
android
Liben18 小时前
Weex开发踩坑记录
android·前端·ios
救救孩子把20 小时前
结构化输出为何“格式正确、答案错误”?JSON Schema 的能力边界
android·java·json·agent·agent服务