2012-09-20 4 views
-3

다음 코드에서 잘못된 것은 무엇입니까? 당신이 게시 코드 및 로그 캣을 바탕으로앱이 처음 실행될 때 다른 화면 표시

09-21 03:28:58.948: E/AndroidRuntime(314): FATAL EXCEPTION: main 
09-21 03:28:58.948: E/AndroidRuntime(314): java.lang.NullPointerException 
09-21 03:28:58.948: E/AndroidRuntime(314): at com.x.y.Main.firstTime(Main.java:38) 
09-21 03:28:58.948: E/AndroidRuntime(314): at com.x.y.callFunc(Main.java:50) 
09-21 03:28:58.948: E/AndroidRuntime(314): at com.x.y.Main$2.run(Main.java:30) 
09-21 03:28:58.948: E/AndroidRuntime(314): at android.os.Handler.handleCallback(Handler.java:587) 
09-21 03:28:58.948: E/AndroidRuntime(314): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-21 03:28:58.948: E/AndroidRuntime(314): at android.os.Looper.loop(Looper.java:123) 
09-21 03:28:58.948: E/AndroidRuntime(314): at android.app.ActivityThread.main(ActivityThread.java:4627) 
09-21 03:28:58.948: E/AndroidRuntime(314): at java.lang.reflect.Method.invokeNative(Native Method) 
09-21 03:28:58.948: E/AndroidRuntime(314): at java.lang.reflect.Method.invoke(Method.java:521) 
09-21 03:28:58.948: E/AndroidRuntime(314): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
09-21 03:28:58.948: E/AndroidRuntime(314): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
09-21 03:28:58.948: E/AndroidRuntime(314): at dalvik.system.NativeStart.main(Native Method) 
+0

왜 지연된 처리기를 사용하여이 시작 화면을 게시하고 있습니까? – AedonEtLIRA

+0

이 코드는 스플래시 화면입니까? – AedonEtLIRA

+0

아니요 ... 예외가 있습니까? – AedonEtLIRA

답변

2

SharedPreferences mPreferences; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

    setContentView(R.layout.splash); 
     new Handler().postDelayed(new Runnable() { 

      public void run() { 
       init(); 
       callFunc(); 
      } 

     }, SPLASH_DISPLAY_LENGHT); 
     // } 
    } 

    boolean firstTime() { 
     boolean firstTime = mPreferences.getBoolean("firstTime", true); 
     if (firstTime) { 
      SharedPreferences.Editor editor = mPreferences.edit(); 
      editor.putBoolean("firstTime", false); 
      editor.commit(); 
      return true; 
     } else { 
      return false; 
     } 
    } 

    void callFunc(){ 
     if(firstTime()){ 
      callDetailedScreen();   
     } 
     else{ 
      CallMainScreen(); 
     } 
    } 

로그 캣, 당신은 당신 된 SharedPreferences를 인스턴스화되지 않습니다.

1

환경 설정을로드해야합니다. 이렇게해야합니다. 그것을 만들어라.

mPreferences = android.preference.PreferenceManager 
      .getDefaultSharedPreferences(this); 
관련 문제