我已成功地将数据保存在SQLite DB中。但我在从SQLite数据库读取数据时出现了一个错误,然后我的应用程序崩溃了。
错误信息
01-01 05:42:13.916 607-607/com.example.eyesaver I/dalvikvm: | sysTid=607 nice=0 sched=0/0 cgrp=apps handle=68313184
01-01 05:42:13.916 607-607/com.example.eyesaver I/dalvikvm: | sysTid=607 nice=0 sched=0/0 cgrp=apps handle=68313184
01-01 05:42:13.916 607-607/com.example.eyesaver I/dalvikvm: | state=R schedstat=( 0 0 0 ) utm=2910 stm=2910 core=0
01-01 05:42:13.916 607-607/com.example.eyesaver I/dalvikvm: | state=R schedstat=( 0 0 0 ) utm=2910 stm=2910 core=0
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at android.database.CursorWindow.nativeGetString(Native Method)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at android.database.CursorWindow.nativeGetString(Native Method)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at android.database.CursorWindow.getString(CursorWindow.java:434)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at android.database.CursorWindow.getString(CursorWindow.java:434)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:51)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at com.example.eyesaver.SQ_Lite_DB.ReadSqliteData(SQ_Lite_DB.java:59)
01-01 05:42:13.917 607-607/com.example.eyesaver I/dalvikvm: at com.example.eyesaver.SQ_Lite_DB.ReadSqliteData(SQ_Lite_DB.java:59)// I marked this line in code
1-01 05:42:16.189 607-607/com.example.eyesaver E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.eyesaver, PID: 607
java.lang.OutOfMemoryError: [memory exhausted]
at dalvik.system.NativeStart.main(Native Method)
01-01 05:42:16.189 607-607/com.example.eyesaver E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.eyesaver, PID: 607
java.lang.OutOfMemoryError: [memory exhausted]
at dalvik.system.NativeStart.main(Native Method)
public void ReadSqliteData(Context context){
ArrayList<Model> list = new ArrayList<>();
Adpter adpter = new Adpter(list,context);
SQLiteDatabase database = getWritableDatabase();
Cursor cursor = database.rawQuery("Select name, image from orders",null);
if (cursor.moveToFirst()){
while (cursor.moveToFirst()){
Model model = new Model();
model.setImage(cursor.getString(0)); //i am getting error here
model.setName(cursor.getString(1)); //i am getting error here
list.add(model);
}
adpter.notifyDataSetChanged();
}
cursor.close();
database.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(
"Create Table orders"+
"(id INTERGER PRIMARY KEY,"+
"image text ,"+
"name text)"
);
}
如果你需要任何其他信息,请告诉我。
循环永远不会结束,因为在每次迭代中,您使用MoveToFirst()
在第一行设置光标的索引,而不前进到下一行。
仅使用MoveToNext()
:
public void ReadSqliteData(Context context){
ArrayList<Model> list = new ArrayList<>();
Adpter adpter = new Adpter(list,context);
SQLiteDatabase database = getWritableDatabase();
Cursor cursor = database.rawQuery("Select name, image from orders",null);
while (cursor.moveToNext()){
Model model = new Model();
model.setImage(cursor.getString(0));
model.setName(cursor.getString(1));
list.add(model);
}
adpter.notifyDataSetChanged();
cursor.close();
database.close();
}
我已经花了几个小时阅读产品分支中的0和1。请在Firebase数据库有经验的人帮助我:(
问题内容: 当我写这篇文章时,我尝试使用Pandas处理大型CSV文件。 它会引发“ pandas.parser.CParserError:错误标记数据。C错误:内存不足” wc -l表示有13822117行,我需要在此csv文件数据帧上进行汇总,有没有办法处理其他然后拆分CSV成几个文件,并编写代码以合并结果?有什么建议吗?谢谢 输入是这样的: 所需的输出是这样的: 如果数据集较小,则可以使用下
问题内容: 我正在尝试编写一个按位读取文件的读取器,但是大文件有问题。我试图读取100 mb的文件,它花了3分钟多的时间,但是仍然有效。 但是,然后我尝试使用500 mb的文件,但它甚至没有启动。由于这一行: 现在,我正在寻找解决方案,但找不到任何解决方案。也许有人解决了它,可以分享一些代码,技巧或想法。 问题答案: 我建议您尝试使用内存映射。 这将使整个文件几乎立即可用(大约10毫秒),并且几乎
当将固定数量的字符串(用于测试的800,000个1KB)放入PubSub主题并在Dataflow中运行以下Apache Beam(2.1.0)作业时,只要按照预期保留了语义。
我试图从Firebase数据库中读取数据,我已经到处阅读和查找,但我已经走到了死胡同。 这就是我所做的一切。 依赖项: 实现'com.google.firebase: Firebase存储: 9.2.1' 实现'com。谷歌。firebase:firebase数据库:9.2。1' 实现'com。谷歌。firebase:firebase授权:9.2。1' 实现'com。谷歌。火基:火基核心:9.2。
问题内容: 我有以下代码,旨在读取目录并将其压缩到tar.gz归档文件中。当我将代码部署到服务器上并使用一批文件对其进行测试时,它可以在前几个测试批处理中使用,但是在第4批或第5批处理之后,它将始终如一地为我提供java.lang.OutOfMemoryError:即使直接缓冲内存文件批处理大小保持不变,并且堆空间看起来不错。这是代码: } 这是一个例外: 我认为有一个缓冲区内存泄漏,因为它在前4