Android -- 使用Sharepreference保存List储存失败,原因是包含Bitmap,drawable等类型数据

1.报错信息如下:

class android.content.res.ColorStateList declares multiple JSON fields named mChangingConfigurations

2.Bean类属性如下:

data class AppInfoBean(
val appName: String?,
val appIcon: Drawable,
val appPackage: String?,
val appActivity: String? = null,
val thirdApp: Boolean = false
) : Parcelable {

经过一番百度搜刮,终于找到了原因所在,就是list在存储时需要序列化,但是Drawable类型不支持,我去,这是很基础的知识阿!

3.解决思路很简单,就是

  • 可以通过将 Drawable 转换为 Bitmap、资源 ID 或 Base64 字符串间接实现。

  • 对于 List<Drawable>,可以将每个 Drawable 转换为 byte[]String,然后存储为 List<byte[]>List<String>

  • 推荐使用 Bitmap 或资源 ID 的方式,因为它们更高效且易于管理。

相关推荐
缘来的精彩37 分钟前
Android framwork 详细开发指南
android·c++·framwork
清霜之辰39 分钟前
2025年如何实现安卓、iOS、鸿蒙跨平台开发
android·ios·跨平台·harmonyos
Zender Han2 小时前
Flutter状态管理框架GetX最新版详解与实践指南
android·flutter·ios
仙魁XAN3 小时前
Flutter 学习之旅 之 flutter 在 Android 端进行简单的打开前后相机预览 / 拍照保存
android·flutter·相机·拍照·camera
开开心心就好5 小时前
手机隐私数据彻底删除工具:回收或弃用手机前防数据恢复
android·运维·python·智能手机·pdf·自动化·软件需求
m0_748232395 小时前
【PHP】部署和发布PHP网站到IIS服务器
android·服务器·php
雾里看山6 小时前
【MySQL】索引(中)
android·数据库·mysql
m0_748239336 小时前
SpringMVC新版本踩坑[已解决]
android·前端·后端
m0_748236116 小时前
【MySQL】 表的约束(上)
android·mysql·adb