Ich habe eine funktionierende App, die eine Datenbank und SQLiteAssetHelper verwendet. Die Datenbankdatei (sql.sqlite) wird gezippt (sql.sqlite.zip) und in den Ordner "assets / database" gestellt.
Das Programm funktioniert einwandfrei. Und wenn es für eine Sekunde / dritte / vierte ... Zeit läuft, startet es schnell. Aber wenn ich einen "force stop" mache, gefolgt von einem "clear data", dann führe es erneut aus, dann sehe ich einen Fehler "unbekannter Fehler (Code 14): Datenbank konnte nicht geöffnet werden" ... aber dann warte ich ein paar Sekunden und alles lädt und funktioniert perfekt.
Das Protokoll ist wie folgt:
%Vor%So scheint es irgendwie versucht zu haben, die Datenbank zu finden, gescheitert, abgestürzt und dann selbst repariert. Also meine Frage ist, wie hätte ich den ungeschickten Start und die paar Sekunden Verzögerung vermeiden können?
BEARBEITEN: Meine erste Referenz auf die Datenbank in meinem Code ist ...
%Vor%und ich haben ...
%Vor%YEEEESES! Endlich fand ich die Antwort. Sie sollten die neuere Version von SQLiteAssetHelper
verwendenWechseln Sie zu
%Vor%@ haike00 Er verwendet SQLiteAssetHelper, eine Bibliothek, die es unterstützt, vorgefüllte sqlite-Datenbanken in internen / externen Speicher zu kopieren, wenn die App zum ersten Mal ausgeführt wird. Wenn Sie diese Lib verwenden, müssen Sie Ihre SQLite-Datei zippen, keine anderen Optionen.