Ich habe eine Anwendung auf dem Google Play Store. In dieser Anwendung speichere ich einige Daten in einer Datei (Datenbank wäre besser, würde aber jetzt mehr Arbeit bedeuten). Das funktioniert einwandfrei, aber das Problem ist, dass wenn ich Version 2 zum Beispiel ausführe und ich Daten in einer Datei speichere, kann ich es zurückbekommen. Aber wenn ich dann auf Version 3 aktualisiere, werden die Daten nicht geladen, aber die Datei existiert immer noch im Dateiverzeichnis der Anwendungen. Diese Datei wird im internen Speicher des Geräts gespeichert. Jetzt weiß ich nicht, warum das passiert, aber ich lese im Internet, dass eine andere sharedUserId die Ursache sein könnte, aber ich habe keine sharedUserId in meinem Manifest. Ich weiß, dass Android dann einen erzeugen wird, aber ist dieser immer derselbe? Selbst wenn die App auf einem anderen Computer kompiliert ist? Kann jemand helfen?Datei im internen Speicher von Android nicht lesbar nach dem Update
Vielen Dank im Voraus!
EDIT
Einige Codes, den ich verwende, um die Datei zu lesen und schreiben:
zu schreiben:
try {
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
ObjectOutputStream os = new ObjectOutputStream(fos);
os.writeObject(object);
os.close();
} catch (IOException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
} finally {
}
zu lesen:
try {
FileInputStream fis = context.openFileInput(fileName);
ObjectInputStream is;
is = new ObjectInputStream(fis);
Serializable objectOut = (Serializable) is.readObject();
is.close();
return objectOut;
} catch (StreamCorruptedException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
} catch (IOException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
} catch (ClassNotFoundException e) {
LogUtils.e(IoUtils.class.getSimpleName(), e.getMessage());
}
return null;
Nach dem Update nichts scheint aus dieser Datei herauszukommen, aber ich bekomme keine Fehler entweder. Mit einem ROOT-Datei-Explorer kann ich nach/data/data/myApp/files/gehen und dort finde ich die Datei, die die gleiche Größe wie vor dem Update hat.
"Ich weiß, dass Android dann eine generieren wird, aber ist diese immer die gleiche?" - Ja, für ein bestimmtes Gerät. "Auch wenn die App auf einem anderen Computer kompiliert ist?" - Ja, das sollte keine Rolle spielen. Android erstellt die Benutzer-ID, nicht die Entwicklungstools. Welches Gerät und welches Gerät ist das? – CommonsWare
Getestet auf 2 Geräten und beide haben das Problem – Allinone51
OK ... was macht und Modelle sind diese dann? – CommonsWare