마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

preference 에러메세지 질문입니다.

0 추천

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.ksw.lockscreenview, PID: 11935
                  java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.example.ksw.lockscreenview.Preference.PreferencesManager.setValue(java.lang.String, java.lang.Object)' on a null object reference
                      at com.example.ksw.lockscreenview.Preference.PreferencesHelper.setPassword(PreferencesHelper.java:44)
                      at com.example.ksw.lockscreenview.SettingPass$2.onLongClick(SettingPass.java:92)
                      at android.view.View.performLongClick(View.java:4895)
                      at android.view.View$CheckForLongPress.run(View.java:19930)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:211)
                      at android.app.ActivityThread.main(ActivityThread.java:5389)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)

 

해당 액티비티 코드는

PreferencesHelper.setPassword(firstNum);

해당 prefhelper 코드는

public static void setPassword(String paramString)
{
    mPrefManager.setValue("is_pass", paramString);
    mPrefManager.setValue("is_first", Boolean.valueOf(false));
}

그리고 해당 prefmanager는

public boolean setValue(String paramString, Object paramObject)
{
    for (;;)
    {
        SharedPreferences.Editor localEditor;
        synchronized (OBJECT)
        {
            localEditor = this.mPref.edit();
            if ((paramObject instanceof Boolean))
            {
                localEditor.putBoolean(paramString, ((Boolean)paramObject).booleanValue());
                localEditor.commit();
                return true;
            }
            if ((paramObject instanceof Float)) {
                localEditor.putFloat(paramString, ((Float)paramObject).floatValue());
            }
        }
        if ((paramObject instanceof Integer)) {
            localEditor.putInt(paramString, ((Integer)paramObject).intValue());
        } else if ((paramObject instanceof Long)) {
            localEditor.putLong(paramString, ((Long)paramObject).longValue());
        } else if ((paramObject instanceof String)) {
            localEditor.putString(paramString, (String)paramObject);
        }
    }
}

왜 또 Null이 뜨는거지...

아스트랄로프 (250 포인트) 님이 2016년 11월 10일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...