Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLCipher-结束尚未停用的游标时出错_Android_Sqlite_Cursor - Fatal编程技术网

Android SQLCipher-结束尚未停用的游标时出错

Android SQLCipher-结束尚未停用的游标时出错,android,sqlite,cursor,Android,Sqlite,Cursor,我的问题与此非常相似,但略有不同。当我试图查询表中已由加密的所有内容时,会出现以下错误 创建游标后,如果调用startManagingCursor(c)将解决此问题。这里的“c”是游标引用。创建游标后,如果调用开始管理游标(c)将解决此问题。这里的“c”是游标引用。我被堆栈跟踪误导了,似乎我只需要在查询的所有操作完成后调用游标。deactivate()和游标。close()。我被堆栈跟踪误导了,似乎我只需要调用游标。deactivate()和Cursor.close()在我对查询的所有操作完成后

我的问题与此非常相似,但略有不同。当我试图查询表中已由加密的所有内容时,会出现以下错误


创建游标后,如果调用
startManagingCursor(c)将解决此问题。这里的“c”是游标引用。

创建游标后,如果调用
开始管理游标(c)将解决此问题。这里的“c”是游标引用。

我被堆栈跟踪误导了,似乎我只需要在查询的所有操作完成后调用
游标。deactivate()
游标。close()

我被堆栈跟踪误导了,似乎我只需要调用
游标。deactivate()
Cursor.close()
在我对查询的所有操作完成后。

该错误表示
光标已在此处打开。对我来说,这意味着您成功地调用了
queryAllItems()
,但从未关闭过
光标
,它告诉您最初创建
光标的位置。您完全正确,我添加了两个调试标记,并注意到在所有查询完成后发生了错误。我猜我被堆栈跟踪误导了。错误表明
光标
“在这里打开了”。对我来说,这意味着您成功地调用了
queryAllItems()
,但从未关闭过
光标
,它告诉您最初创建
光标的位置。您完全正确,我添加了两个调试标记,并注意到在所有查询完成后发生了错误。我想我被那堆痕迹误导了。
 12-29 11:37:54.329: E/Cursor(10837): Finalizing a Cursor that has not been deactivated or closed. database = /data/data/com.company.myapp/databases/data, table = data_table, query = SELECT rowid, data FROM data_table
 12-29 11:37:54.329: E/Cursor(10837): info.guardianproject.database.sqlcipher.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
 12-29 11:37:54.329: E/Cursor(10837):   at info.guardianproject.database.sqlcipher.SQLiteCursor.<init>(SQLiteCursor.java:225)
 12-29 11:37:54.329: E/Cursor(10837):   at info.guardianproject.database.sqlcipher.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:53)
 12-29 11:37:54.329: E/Cursor(10837):   at info.guardianproject.database.sqlcipher.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1410)
 12-29 11:37:54.329: E/Cursor(10837):   at info.guardianproject.database.sqlcipher.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1289)
 12-29 11:37:54.329: E/Cursor(10837):   at info.guardianproject.database.sqlcipher.SQLiteDatabase.query(SQLiteDatabase.java:1243)
 12-29 11:37:54.329: E/Cursor(10837):   at info.guardianproject.database.sqlcipher.SQLiteDatabase.query(SQLiteDatabase.java:1325)
 12-29 11:37:54.329: E/Cursor(10837):   at com.company.appName.DatabaseManager.queryAllItems(DatabaseManager.java:105)
public Cursor queryAllItems() {
    return database.query(DATABASE_TABLE, new String[] {KEY_ID, KEY_DATA}, null, null, null, null, null);
}