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

相关推荐
饭小猿人13 小时前
Android 腾讯X5WebView如何禁止系统自带剪切板和自定义剪切板视图
android·java
_李小白13 小时前
【android opencv学习笔记】Day 8: remap(像素位置重映射)
android·opencv·学习
美狐美颜SDK开放平台13 小时前
多场景美颜SDK解决方案:直播APP(iOS/安卓)开发接入详解
android·人工智能·ios·音视频·美颜sdk·第三方美颜sdk·短视频美颜sdk
嗷o嗷o14 小时前
Android BLE 里,MTU、分包和长数据发送到底该怎么处理
android
Gary Studio15 小时前
Android AIDL HAL工程结构示例
android
y = xⁿ16 小时前
MySQL八股知识合集
android·mysql·adb
andr_gale16 小时前
04_rc文件语法规则
android·framework·aosp
祖国的好青年17 小时前
VS Code 搭建 React Native 开发环境(Windows 实战指南)
android·windows·react native·react.js
黄林晴18 小时前
警惕!AGP 9.2 别只改版本号,R8 规则与构建链路全线收紧
android·gradle