2

突然、アプリを起動するたびに、ユーザー設定が消去されます。アクティビティで設定を直接使用する代わりに、次のように設定にアクセスするヘルパー クラスを Application オブジェクトに用意しました。

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());

これは今まで完全に機能していました。アクティビティが作成/破棄されたときにこのコンテンツを再生成する問題を回避するために、アプリケーションのほとんどのコンテンツを管理するカスタム アプリケーション クラスがあります。

ユーザー設定をクリアする方法があることは認識していますが、コードのどこにもそれがありません。これは、リリース ビルド用に Proguard を使用してビルドを開始したときに発生し始めたように見えましたが、現在はデバッグ ビルドでも発生しています。Eclipse から新しいアプリを再ダウンロードするか、アプリを再起動するだけで、設定が消去されます。

最近のコード変更を行ってきましたが、関連するものは見つかりませんでした。アプリを市場に出すのが近づいているので、デバッグとリリースを切り替え続けていますが、これがこのような問題を引き起こすとは思いません。

何か案は?

-ケビン

4

2 に答える 2

1

あなたを引用するには...

これは、リリース ビルド用に Proguard を使用してビルドを開始したときに発生し始めたようです。

リリース ビルドとデバッグ ビルドは署名に異なるキーを使用するため、同じデバイスに共存させることはできません。リリース ビルドをインストールするときに、デバッグ ビルドをアンインストールしていませんか? アンインストールすると、アプリに関連付けられている設定が無効になります。

あなたは設定を消去するコードを持っていないと言っているので、設定が消える唯一の方法は、物理的な設定 XML ファイルがクリアまたは削除される場合です。そのため、アプリケーションのローカル ストレージ領域内のファイルを消去するコードがないことを確認する必要があります。

于 2011-01-23T20:18:33.457 に答える
0

解決しました。Logcat を使用して、最終的に設定を読み取るときに例外に気付きました。null キーを使用して新しい設定を作成していたところ、設定の読み込み例外が発生していました。私の愚かな間違い。

于 2011-01-23T21:04:52.857 に答える