Hi,
ich stehe mal wieder vor einem Kuriosum.
Folgendes Gerät habe ich zum Testen der App
Android Google Pixel 7a
Android Version 14
In der App gibt es eine SQLite Datenbank. Die "Erstinstallation" sieht so aus, dass eine leere Datenbank (ohne Daten, nur Tabellen und Felder) über die Bereitstellung in .\assets\internal\ geladen wird.
Wird dann über
Code:
Connection.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath,<Datenbankname>)
mit der Anwendung gekoppelt. So weit so unspektakulär.
Jetzt gibt es an der Datenbankstruktur Änderungen. Die Anwendung ist noch nicht Live (sonst würde ich es über ein Updateskript regeln). Habe die Anpassungen an der Datenbank durchgeführt, die Über die Bereitstellung bereitgestellt wird.
Meine naive Annahme war jetzt, dass ich einfach auf dem Gerät die App deinstallieren kann und es über Delphi neu drauf spielen kann und dann die neue
DB habe. Aber dem ist leider nicht so. Dass Verhalten kannte ich schon (Wahrscheinlich was Pixel spezifisches? Scheinbar werden die Daten irgendwo gecached), normalerweise konnte ich das immer lösen, indem ich in die App-Einstellungen geöffnet habe und dann unter "Speicher und Cache" sowohl den Cache als auch den Speicher gelöscht habe. Das ging auch noch sicher unter Android 13. Seit dem Android 14 auf dem Gerät ist, scheint auch das nicht mehr zu funktionieren. Ich lösche alles runter, nehme dann testweise sogar die Datenbank mal aus dem Deploy raus und beim nächsten verteilen der Anwendung ist wieder die alte bereits vor langer Zeit verteilte Datenbank im System.
Absolut keine Ahnung von wo er sich die zieht und wie ich die weg bekomme. Kennt ihr das? Hattet ihr das schon mal?
Habs auch schon mit einem Neustart versucht, der Nächste Step ist ein Zurücksetzen auf Werkseinstellungen, aber der Aufwand ist doch extrem hoch.
Bin für alle Möglichkeiten offen.
VG
PJM