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的插件,才会在编译时生成对应的方法。

相关推荐
天***885215 小时前
安卓KMPlayer安卓版播放器,支持AC-3、WMA、MP3、AAC
android·aac
jinanwuhuaguo16 小时前
OpenClaw 2026.4.5 深度解读
android·开发语言·人工智能·kotlin·openclaw
用户693717500138416 小时前
实测!Gemma 4 成功跑在安卓手机上:离线 AI 助手终于来了
android·前端·人工智能
海兰16 小时前
使用 Elastic Workflows 监控 Kibana 仪表板访问数据
android·人工智能·elasticsearch·rxjava
用户4839165508316 小时前
AI代码分析 - LocklessQueue
android
峥嵘life17 小时前
Android 无线投屏相关知识介绍
android·学习
常利兵17 小时前
安卓开发避坑指南:全局异常捕获与优雅处理实战
android·服务器·php
studyForMokey17 小时前
【Android面试】OkHttp & Retrofit 专题
android·okhttp·面试
恋猫de小郭17 小时前
抖音“极客”适配 Android 5 ~ 9 等老机型技术解读,都是骚操作
android·前端·flutter
黄林晴17 小时前
Android Studio Panda 4 来了!AGP 9.2 升级,同步稳定性大幅修复
android·android studio