使用dbflow选择模型时(
SQLite.select().from(Schedule.class).where(Schedule_Table.id.eq(scheduleId)).querySingle()
)我得到以下错误:
无法打开数据库文件(代码2062)
########################################################### Error Code : 2062 (SQLITE_CANTOPEN_EMFILE) Caused By : Application has
打开了两个多文件。一个可用文件描述符的最大值
进程默认为1024。(无法打开数据库文件(代码2062))
#
是我做错了什么,还是dbflow库中有个bug?崩溃的dbflow代码是:
@SuppressWarnings("unchecked")
@Nullable
public TModel convertToData(@NonNull final FlowCursor cursor, @Nullable TModel data,
boolean moveToFirst) {
if (!moveToFirst || cursor.moveToFirst()) {
if (data == null) {
data = getInstanceAdapter().newInstance();
}
getInstanceAdapter().loadFromCursor(cursor, data);
}
return data;
}
此函数由以下函数执行,您可以看到光标正在关闭:
@Nullable
public TReturn load(@Nullable FlowCursor cursor, @Nullable TReturn data) {
if (cursor != null) {
try {
data = convertToData(cursor, data);
} finally {
cursor.close();
}
}
return data;
}
由于光标正在关闭,打开过多文件可能会出现什么错误?