2013-12-16 58 views
0

我有一個好奇的問題。我的應用程序有一個自定義對話框,並帶有一個按鈕來保存密碼。它工作正常。但有時它會崩潰(我做同樣的交互)。 Logcat拋出一個NullPointerException。但我檢查了代碼,沒有找到導致此錯誤的部分。onClick後有時會崩潰 - Android

問題是,很難模擬錯誤。它有時會發生。什麼可能是一個原因?應用程序有時會掛起,如果再次按下按鈕,它會崩潰。

這是logcat的:

java.lang.NullPointerException 
at de.tapps.guardian.free.MainActivity$7$1.onClick(MainActivity.java:1312) 
at android.view.View.performClick(View.java:4232) 
at android.view.View$PerformClick.run(View.java:17298) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4921) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794) 
at dalvik.system.NativeStart.main(Native Method) 

這似乎是錯誤代碼(行1312ff。):

@Override 
         public void onClick(View v) { 
          dialog.cancel(); 
          SharedPreferences settings = getSharedPreferences("App", 0); 
          SharedPreferences.Editor editor = settings.edit(); 
          editor.putString("pass", 
            ((EditText) findViewById(R.id.input_password)).getText().toString()); 
          editor.commit(); 
          setContentView(R.layout.settings); 
+1

安置自己的logcat和代碼。 – Apoorv

+0

在這裏發佈你的stackTrace – Piyush

+0

你沒有給我們足夠的信息給你一個明智的答案。發佈一些代碼,我們可能會提供幫助。 –

回答

0

把一個try/catch或者如果條件存在......它主要當你要求用戶輸入一些輸入和用戶沒有輸入輸入並點擊'保存密碼'按鈕...如果你想在這裏發佈保存密碼代碼片段,我會幫助你一樣...希望這將解決您的問題...

感謝

+0

這是行不通的,我檢查了它,它有時會起作用,有時候會崩潰,輸入是輸入的 – JavaForAndroid

+0

你是否嘗試處理異常呢? – shivamDev

2

變化

dialog.cancel(); 

dialog.dismiss(); 

並找到ID的

EditText edt = (EditText) findViewById(R.id.input_password)) 

在onCreate()方法:

即獲得價值後在的EditText字符串

String str = edt.getText().toString(); 

通過這個來SharedPreference

editor.putString("pass",str); 
+0

什麼是區別? – JavaForAndroid

+0

通常情況下,對話框在作業完成時會被取消,並且正在從屏幕上刪除對話框。當用戶想要跳過對話框並按下後退按鈕時,對話框會被取消。 例如,您有一個標準如果用戶點擊否,那麼對話框將被解除,並且No的值返回給調用者。如果用戶不是選擇Yes或No,而是點擊Back退出對話框而不是製作一個對話框選擇則對話框被取消,並且沒有值返回給調用者。 – Piyush