Android java.lang.IllegalStateException: Konnte die Zeile 0, col 0 aus CursorWindow nicht lesen

Ich entwickle eine Anwendung, die einige Dateien herunterlädt und ihren Text in file_content Feld in Datenbank speichern. Die Dateigrößen können von einigen KBs bis 10 MB variieren. Die App arbeitet für alle Größen beim Speichern. Das Problem tritt bei der Verwendung von select-Anweisung auf langen file_content-Datensätzen auf. Es gibt

Java.lang.IllegalStateException: Die Zeile 0, col 0 aus CursorWindow konnte nicht gelesen werden

  • Jacinto6 Board mit Android: Wie baue ich eine Portrait-Firmware?
  • Referenzieren einer XML-Zeichenfolge in einem XML-Array (Android)
  • CardView Hintergrundfarbe immer weiß
  • So legen Sie die Höhe der Actionbar-Tabs für Android fest
  • Play SWF-Datei im WebViewClient auf ICS?
  • Wie bekomme ich Response von USSD Code von Android?
  • Beim Abrufen solcher Zeilen. Gibt es irgendwelche Grenzen für die Feldinhaltsgröße? Wenn ja, warum ist es dann erlaubt uns zu retten und geben Fehler beim Abrufen? Hier ist mein Code schnappte, dass die Zeile holt:

    public String getFileContent(MyFile gc) { if(!isDBOpen()) { open(); } try { String mQuery = "SELECT * FROM " + DBOpenHelper.TABLE_SAVED_FILES + " WHERE " + DBOpenHelper.COLUMN_ID + " = " + gc.id; Cursor mCursor = database.rawQuery(mQuery, null); if(mCursor.getCount() <= 0) { return null; } if(mCursor.moveToFirst()) { return getCursorRowContent(mCursor); } } catch (Exception e) { e.getMessage(); } return null; } private String getCursorRowContent(Cursor mCursor) throws Exception { return mCursor.getString(mCursor.getColumnIndex(DBOpenHelper.COLUMN_FILE_CONTENT)); } 

    Irgendeine Idee was ist los? Ich habe es auf 2 bis 3 Geräte getestet.

    Logcat-Ausgang:

     01-29 13:41:56.520: W/CursorWindow(4121): Window is full: requested allocation 5140987 bytes, free space 2096617 bytes, window size 2097152 bytes 01-29 13:41:56.520: E/CursorWindow(4121): Failed to read row 0, column 0 from a CursorWindow which has 0 rows, 9 columns. 01-29 13:43:30.932: W/System.err(4121): java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it. 01-29 13:43:30.932: W/System.err(4121): at android.database.CursorWindow.nativeGetLong(Native Method) 01-29 13:43:30.932: W/System.err(4121): at android.database.CursorWindow.getLong(CursorWindow.java:507) 01-29 13:43:30.932: W/System.err(4121): at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:75) 01-29 13:43:30.936: W/System.err(4121): at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:220) 01-29 13:43:30.936: W/System.err(4121): at android.database.AbstractCursor.moveToNext(AbstractCursor.java:245) 01-29 13:43:30.940: W/System.err(4121): at com.nxb.cachehead.bl.PocketQueryDataSource.getGeoCacheContent(PocketQueryDataSource.java:97) 01-29 13:43:30.940: W/System.err(4121): at com.nxb.cachehead.bl.GPXFileCopyAsyncTask.doInBackground(GPXFileCopyAsyncTask.java:27) 01-29 13:43:30.940: W/System.err(4121): at com.nxb.cachehead.bl.GPXFileCopyAsyncTask.doInBackground(GPXFileCopyAsyncTask.java:1) 01-29 13:43:30.940: W/System.err(4121): at android.os.AsyncTask$2.call(AsyncTask.java:287) 01-29 13:43:30.944: W/System.err(4121): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 01-29 13:43:30.944: W/System.err(4121): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 01-29 13:43:30.948: W/System.err(4121): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 01-29 13:43:30.948: W/System.err(4121): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 01-29 13:43:30.948: W/System.err(4121): at java.lang.Thread.run(Thread.java:856) 

  • Mobile Entwicklungsbarriere für den Eintritt
  • Nicht in der Lage, die aktuelle Ansicht in Viewpager zu bekommen
  • Libgdx Punktlicht funktioniert nicht auf generiertem Netz
  • Lollipop Grafik glitch
  • SingleTask launchMode in android funktioniert nicht
  • Ausfall Android-L
  • One Solution collect form web for “Android java.lang.IllegalStateException: Konnte die Zeile 0, col 0 aus CursorWindow nicht lesen”

    01-29 13: 41: 56.520: W / CursorWindow (4121): Fenster ist voll: angeforderte Zuordnung 5140987 Bytes, freier Speicherplatz 2096617 Bytes, Fenstergröße 2097152 Bytes

    Android SQLite gibt Zeilen in Cursor-Fenstern zurück, die die maximale Größe von 2MB haben, wie von config_cursorWindowSize . Wenn deine Zeile diese Grenze überschreitet, bekommst du diesen Fehler.

    Das Speichern großer Daten in der sqlite Datenbank ist sowieso keine gute Idee. Speichern von Dateien im Dateisystem und Pfade in der Datenbank.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.