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 的方式,因为它们更高效且易于管理。

相关推荐
高梦轩15 分钟前
MySQL高可用
android·运维·数据库
RATi GORI4 小时前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
MoFe15 小时前
【Mysql】创建IP授权用户并授权
android
冬奇Lab6 小时前
Camera2 API架构基础:Android视频系统的大门
android·音视频开发·源码阅读
hnlgzb6 小时前
安卓app kotlin语法,Hilt是什么东西?
android·开发语言·kotlin
Android系统攻城狮8 小时前
Android tinyalsa深度解析之pcm_params_get_periods_min调用流程与实战(一百七十三)
android·pcm·tinyalsa·音频进阶手册
Xempastissimo9 小时前
Android常见界面控件
android
法欧特斯卡雷特9 小时前
从 Kotlin 编译器 API 的变化开始: 2.3.20
android·后端·开源
词元Max10 小时前
1.5 Harness 架构深度解析:Claude Code 为什么强?
android·架构
yy552710 小时前
Mysql 主从复制与读写分离
android·数据库·mysql