我有一个应用程序,发送一个类型的数据库在Hive和在我的适配器,我有方法读取和写入我的所有变量。问题在于这个变量:
@HiveField(5)
String? imoString;
这一行负责读取适配器中的变量:
model.imoString = reader.readString();
这个是写:
writer.writeString(model.imoString ?? "");
我100%确定我正确地保存了变量(类型字符串和值作为用户在屏幕上写的值),因为我可以在write方法中打印它。但是当我重新加载应用程序并调用方法get from db时,我面临指向model.imoString = reader.readString();
:
Unhandled Exception: RangeError: Not enough bytes available.
我能做什么?
我试着用阅读器阅读。读,但它不工作,以及对象:变量在读和写方法中的顺序正确
编辑我发现,如果我在读和写中注释这个适配器的第一项,它就可以工作了。第一个元素是另一个有自己适配器的模型(它有很多变量)
您可以尝试将读取和写入的所有变量更改为仅read()
和write()
,而不使用