Ich habe eine SQLite-Datenbank, die Größe ist über 2,6 GiB. (Die Datenbank enthält Karten.) Diese Datenbank wird von RMaps App verwendet. Wenn Sie die Karten bei maximalem Zoom auf einige Teile verschieben, wird die App plötzlich geschlossen. Es gibt jedoch keine Force-Close-Nachricht, keine Berichtschaltfläche. Ich habe also eine Idee, dass es durch das Lesen von Blöcken verursacht wird, die eine bestimmte Grenze überschreiten, z. max (int). Da RMaps nur einfache SQL-Anweisungen verwendet, denke ich, dass das Problem nicht in RMaps, sondern in Android SQLite-Treiber liegt.Was ist eine maximale Größe der SQLite-Datenbank auf Android?
Gibt es eine Größenbeschränkung der SQLite-Datenbank auf Android?
(Ich habe Froyo auf dem Nexus One, aber ich glaube nicht, dass dies nur ein Problem der Froyo ist.)
Protokollausgabe:
08-14 10:24:51.689 I/ActivityManager( 81): Starting activity: Intent { act=android.intent.action.SEARCH flg=0x10000000 cmp=com.robert.maps/.MainMapActivity (has extras) }
08-14 10:25:01.879 E/AndroidRuntime(12441): FATAL EXCEPTION: pool-1-thread-2
08-14 10:25:01.879 E/AndroidRuntime(12441): android.database.sqlite.SQLiteDiskIOException: disk I/O error
08-14 10:25:01.879 E/AndroidRuntime(12441): at android.database.sqlite.SQLiteQuery.native_fill_window(Native Method)
08-14 10:25:01.879 E/AndroidRuntime(12441): at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:70)
08-14 10:25:01.879 E/AndroidRuntime(12441): at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:283)
08-14 10:25:01.879 E/AndroidRuntime(12441): at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:264)
08-14 10:25:01.879 E/AndroidRuntime(12441): at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171)
08-14 10:25:01.879 E/AndroidRuntime(12441): at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248)
08-14 10:25:01.879 E/AndroidRuntime(12441): at com.robert.maps.utils.CashDatabase.getTile(CashDatabase.java:49)
08-14 10:25:01.879 E/AndroidRuntime(12441): at org.andnav.osm.views.util.OpenStreetMapTileFilesystemProvider$7.run(OpenStreetMapTileFilesystemProvider.java:501)
08-14 10:25:01.879 E/AndroidRuntime(12441): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
08-14 10:25:01.879 E/AndroidRuntime(12441): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
08-14 10:25:01.879 E/AndroidRuntime(12441): at java.lang.Thread.run(Thread.java:1096)
08-14 10:25:01.889 I/ActivityManager( 81): Process com.robert.maps (pid 12441) has died.
08-14 10:25:01.899 I/WindowManager( 81): WIN DEATH: Window{45131410 com.robert.maps/com.robert.maps.MainMapActivity paused=false}
Die SQLite db auf SD-Karte gespeichert ist, Es ist genug Platz.
Versuchen Sie, die db auf der SD-Karte zu speichern – Falmarri
Es ist auf der SD-Karte. –
fat32 limit in sdcard? –