我有11Mb的JSON文件,这些文件将写入Dao,但当我保存所有数据时。我得到了这个错误;
/data/user/0/com.test.save/databases/ChannelDb-wal 6946352 bytes: Bigger than 1048576; truncating
我的代码;
AppDatabase dbRoom = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, Constants.CHANNEL_DB).build();
AndroidNetworking.get(user.getRemote())
.setTag(Constants.GET_CHANNEL_LIST)
.setPriority(Priority.HIGH)
.build()
.getAsOkHttpResponseAndParsed(new TypeToken<List<Channel>>() {
}, new OkHttpResponseAndParsedRequestListener<List<Channel>>() {
@Override
public void onResponse(Response okHttpResponse, List<Channel> channels) {
AsyncTask.execute(() -> dbRoom.channelDao().insertAll(channels));
}
@Override
public void onError(ANError anError) {
Log.d(TAG, "Check 4");
hideProgress();
Toast.makeText(getApplicationContext(), getResources()
.getString(R.string.an_error), Toast.LENGTH_LONG).show();
Crashlytics.log(Log.DEBUG, TAG, anError.getErrorDetail());
}
});
发布于 2019-03-12 06:13:44
这个WAL设置了1MB的限制,而Android上的光标窗口设置了2MB的硬限制。
因此,即使禁用WAL
,您尝试实现的目标也是毫无意义的。
因为即使你设法插入了,你也无法再次检索到它。
基本上,您有两个看似合理的选择:
a)解析JSON并将其添加为单独的记录或
b)将文件保存到文件系统,并保存其路径。
https://stackoverflow.com/questions/55111055
复制相似问题