我创建了以下实体类,主要是用户分享的内容、分享的照片、分享的标题,然后百度了一下LitePal可以识别byte[],因为需要文件的上传与读取:
public class Context extends LitePalSupport {private Integer ContextId;private String title;private String context;private byte[] picture;private String account;}
在ltepal.xml中也创建了对应的实体
<mapping class="com.work.picstory.bean.Context"></mapping>
LitePal.initialize(this);
//只要进行任意一次数据库操作 BookStore.db就会创建
Connector.getDatabase();//就是最简单的一次数据库操作
开始运行与创建 结果发现 各个表都创建成功 唯独
picture这个byte[]类型字段不被创建成功(按理说数据表中应该有个blod类型我(picture字段)
后续才知道是LitPal的新版本已经支持byte[]了,具体原因我也不清楚,看样子很多更新是“倒更新”
我甚至进行了ChatGPT、stackoverflow、百度,由于版本都太老了文章都是几年前的,所以大家都在说可以支持传输图片byte[]类型字段,在ChatGPT中可以看到版本更新
https://github.com/guolindev/LitePal#300
所以需要降低版本:
//LitePal
implementation 'org.litepal.android:java:3.0.0'
如果你使用kotlin可能需要将java改成kotlin implementation 'org.litepal.android:3.0.0'这样好像不会被识别,会报错
所以看官方文档还是非常重要的,此bug我解决了2-3小时