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

相关推荐
骐骥11 小时前
2025-09-08升级问题记录: 升级SDK从Android11到Android12
android·android12·sdk31
CV资深专家5 小时前
Android 各分区模块编译配置(mk/bp)总结
android
louisgeek7 小时前
Java 线程池取消的方式
android
Billy_Zuo7 小时前
人工智能机器学习——模型评价及优化
android·人工智能·机器学习
tangweiguo030519878 小时前
Flutter与原生混合开发:实现完美的暗夜模式同步方案
android·flutter
雨白8 小时前
深入理解 Android 触摸事件:以实现 ViewPager 为例
android
shenshizhong8 小时前
看懂鸿蒙系统源码 比较重要的知识点
android·harmonyos
一只修仙的猿10 小时前
再谈性能优化,一次项目优化经历分享
android·性能优化
雮尘12 小时前
Android性能优化之枚举替代
android
2501_9159090614 小时前
苹果上架App软件全流程指南:iOS 应用发布步骤、App Store 上架流程、uni-app 打包上传与审核技巧详解
android·ios·小程序·https·uni-app·iphone·webview