我想将一个
我尝试了这种方式,但是我收到了
ProtoBuf
对象存储在SharedPreferences
中。但是Protocol Buffers
只允许从ByteString
或Byte Array
解析。但是SharedPreferences
都不支持。我想知道是否有一种方法可以避免先创建另一个可序列化的模型并映射到它的方式。我尝试了这种方式,但是我收到了
InvalidProtocolBufferException
的错误提示:public static void setProtoData(ProtoData data) {
Prefs.putString(Constants.SHARED_PREF_PROTO_DATA, String.valueOf(data.toByteString()));
}
public static ProtoData getProtoData() {
String str = Prefs.getString(Constants.SHARED_PREF_PROTO_DATA, null);
ProtoData data = null;
try {
data = ProtoData.parseFrom(ByteString.copyFromUtf8(str));
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
return data;
}