Google Playストアにアプリケーションがあります。このアプリケーションでは、いくつかのデータをファイルに保存します(データベースはより良いが、もっと多くの作業を意味する)。これは完全に機能しますが、例えばバージョン2を実行しているときにファイルにデータを保存すると、そのファイルを元に戻すことができます。しかし、バージョン3に更新すると、データはロードされませんが、ファイルはアプリケーションの「ファイル」ディレクトリに残ります。このファイルは、デバイスの内部ストレージに保存されます。これがなぜ起こるのか分かりませんが、別のsharedUserIdが原因である可能性があることをインターネットで読み取っていますが、私のマニフェストにsharedUserIdはありません。私はAndroidがそれを生成することを知っていますが、これは常に同じですか?アプリが別のコンピュータでコンパイルされていても? 誰かを助けることができますか?更新後にAndroid内蔵ストレージのファイルが読み取れない
ありがとうございます!
EDIT
私は、ファイルの読み書きに使用するいくつかのコード:
は、書き込むには:
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 {
}
を読むには:
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;
を更新した後何もそのファイルから抜け出すようですが、私は何も取得していませんエラーです。 ROOTファイルエクスプローラを使用すると、/ data/data/myApp/files /に移動し、更新前と同じサイズのファイルを見つけることができます。
「Androidが生成することはわかっていますが、これは常に同じですか?」 - はい、特定のデバイスの場合。 「アプリが別のコンピュータでコンパイルされていても」 - はい、これは問題ではありません。 Androidは開発ツールではなくユーザーIDを作成するものです。これはどのようなデバイスのモデルとモデルですか? – CommonsWare
2台のデバイスでテストしたところ、どちらも問題あり – Allinone51
OK ...どのようなモデルとモデルがありますか? – CommonsWare