sharedPreferenceを使用してオブジェクトを保存しても問題はありませんが、このgetQbUser()メソッドを共有する以前のアクティビティを実行しようとするとクラッシュします私は、アプリケーションを終了し、私のアプリケーションを再実行し、それが正常に動作するまで、プリファレンスは、ループ内でクラッシュを開始するオブジェクトを見つけることができませんでした。共有優先設定はオブジェクトを持っています。クラッシュ後にアプリが再実行されたときの共有設定のヌル値を示します
public void saveQbuser(QBUser user){
SharedPreferences.Editor prefsEditor = mPref.edit();
Gson gson = new Gson();
String json = gson.toJson(user);
prefsEditor.putString("qbuser", json);
prefsEditor.commit();
}
public QBUser getQbUser(){
Gson gson = new Gson();
String json = mPref.getString("qbuser","");
QBUser obj = gson.fromJson(json, QBUser.class);
return obj;
}
//ログ
Caused by java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String android.content.SharedPreferences.getString(java.lang.String, java.lang.String)' on a null object reference
com.attribes.push2beat.Utils.DevicePreferences.getQbUser (DevicePreferences.java:86)
com.attribes.push2beat.mainnavigation.SelectActivity.createChatService (SelectActivity.java:38)
com.attribes.push2beat.mainnavigation.SelectActivity.onCreate (SelectActivity.java:27)
android.app.Activity.performCreate (Activity.java:6251)
android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1107)
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2369)
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2476)
android.app.ActivityThread.-wrap11 (ActivityThread.java)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1344)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:148)
android.app.ActivityThread.main (ActivityThread.java:5417)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:726)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
**注:問題は、アプリがクラッシュ状態である場合にのみ発生し、それ自体で、前のアクティビティを実行しようとしているそうでなければ、私の好みのクラスには問題がありません* *
ここで、「mPref」オブジェクトを初期化しましたか?完全なコードを投稿してください.. –
Uは 'SharedPreferences mPref;'を初期化しましたか? – W4R10CK
あなたのsharedPref変数が、アプリケーションクラッシュ後にnullになる場合は –