从以前的版本更新时我的应用程序崩溃并出现异常:
java.lang.IllegalArgumentException:仅支持 VectorDrawables 和光栅化资源类型。 PNG、JPG
全新安装新版本时运行良好。仅当从旧版本更新时才会出现此问题。它在我的第二个活动中崩溃,其中我显示了可绘制文件夹中的图像,启动器活动工作得很好。
这就是我显示可绘制图像的方式:
Image( painter = painterResource(id = myDataClass.iconResId), contentDescription = "" )
myDataClass
是一个数据对象,在每个应用程序启动时,我都会使用 xml 可绘制资源 id 初始化 iconResId
属性(因为它可以在每次应用程序启动时更改)。
我已正确完成升级: 新apk的versionCode大于旧apk versionName 也是不同的字符串。
可能值得注意的是,新版本中添加了一些额外的可绘制元素,但没有删除旧的可绘制元素。
尝试调试并检查资源 id 是否在
iconResId
属性中正确初始化。它正在正确初始化。
在
drawable
中检查您的文件,因为如果它是带有 xml 标签(例如 <shape/>
、<layer-list/>
等)的常规图像 - 那么您无法在 Jetpack Compose 中使用它。您应该使用 .png/.jpg/.webp 和其他支持的扩展名或通过 Vector Asset
工具导入的 svg 图片
在
iconResId
变量下附上您的图像/文件,我可以告诉您更多信息