Android Studio Kotlin项目调用drawable图片报Expected resource of type integer错误
问题解决方法
核心报错原因
该报错是Lint检测到你传入的参数和Affirmation构造函数要求的资源类型不匹配导致的,按以下步骤排查即可:
- 第一步:检查并修正
Affirmation数据类的构造参数定义
你传入的R.string.xxx和R.drawable.xxx都是Android自动生成的Int类型资源ID,所以你的数据类两个参数都需要声明为Int类型,同时建议添加资源注解避免后续Lint报错,正确示例代码如下:
import androidx.annotation.DrawableRes import androidx.annotation.StringRes data class Affirmation( @StringRes val affirmationStringId: Int, @DrawableRes val affirmationImageId: Int = 0 // 如果你需要支持只传字符串的调用方式,给图片ID加默认值即可 )
- 第二步:修正注释代码的资源引用写法
你注释的代码中直接使用string.affirmation2是错误的,必须加上R.前缀,正确写法为R.string.affirmation2。 - 第三步:清理重建项目(可选)
如果修改完还是报错,可能是R文件临时生成异常,点击Android Studio顶部菜单栏Build -> Clean Project执行清理,再点击Build -> Rebuild Project重建即可解决。
内容的提问来源于stack exchange,提问作者Andres Rosales
相关产品推荐
相关产品推荐

