2013-05-20 4 views
1

저는 인스턴스를 생성하기 위해 열심히 노력하고 있습니다. onCreate 함수를 처음 호출 한 후 코드를 실행하지 않으면 작동합니다. Logcat은 나에게 쓸모없는 실수를 던지고있다.새로운 액티비티를 호출 할 때 Android 예외가 발생했습니다.

05-20 20:11:04.988: W/dalvikvm(20463): threadid=1: thread exiting with uncaught exception (group=0x410d9930) 
05-20 20:11:05.008: E/AndroidRuntime(20463): FATAL EXCEPTION: main 
05-20 20:11:05.008: E/AndroidRuntime(20463): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.buhala.notestaker/com.buhala.notestaker.ShowNote}: java.lang.NullPointerException 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2357) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.ActivityThread.access$600(ActivityThread.java:153) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1247) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.os.Looper.loop(Looper.java:137) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.ActivityThread.main(ActivityThread.java:5226) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at java.lang.reflect.Method.invokeNative(Native Method) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at java.lang.reflect.Method.invoke(Method.java:511) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at dalvik.system.NativeStart.main(Native Method) 
05-20 20:11:05.008: E/AndroidRuntime(20463): Caused by: java.lang.NullPointerException 
05-20 20:11:05.008: E/AndroidRuntime(20463): at com.buhala.notestaker.ShowNote.getText(ShowNote.java:36) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at com.buhala.notestaker.ShowNote.onCreate(ShowNote.java:22) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.Activity.performCreate(Activity.java:5104) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
05-20 20:11:05.008: E/AndroidRuntime(20463): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261) 
05-20 20:11:05.008: E/AndroidRuntime(20463): ... 11 more 

(필자는 형식에 열심히 노력) 그래서, 어떤 아이디어는 내가 무엇을 잘못하고있는 중이 야 : 여기 여기

String note=null; 

    FileInputStream fip=null; 
    try{   
     fip=new FileInputStream(this.getFilesDir()+"/currentNote"); 
    } 
    catch(FileNotFoundException e){ 
     //The first and probably last time this is useful 
     note=""; 
    } 
    try { 
     while(fip.available()>0){ 
      byte current=(byte)fip.read(); 
      note=note+String.valueOf(current); 
     } 
    } 
    catch (IOException e) { 
      //Just... no 
     } 

    TextView note_display=(TextView) findVewById(R.id.note_input); 
    note_display.setText(note); 

을 코드 로그 캣 로그입니다 부르고있다? 당신은 내가 nullPointerException 원인을하는, 그것을 사용하려고 할 때 코드에서

+1

'ShowNote.java'의 36 번째 줄에는 무엇이 있습니까? – jaibatrik

+0

'getText()'메소드는 null을 반환합니다. – Neoh

+0

매니페스트 파일에 호출 된 작업을 선언 했습니까? – Zakaria

답변

2

뭔가 null입니다. 나는 두 가지 추측을 가지고있다. 당신은 당신이는 IOException으로 실행하는 널 포인터 예외

또는를 줄 것이다 당신의 TextView을 선언 한 후

하나, 당신은 때까지 setContentView를 호출하지 않는, 그리고 문자열은 null이 남아있다. 당신이 setText(null) 출력을 단순히 null로 사용하면 나는 믿기 때문에 이것은 내게는 보이지 않을 것 같다.

+0

그래에 manifest'에서 활동을 선언 한, 그것은 오래된 일반 happpen 거부와 같은 라인 뭔가있을 것입니다. 나는 한 번 더 수표를해야했다. 첫 번째 catch 블록에 종료 문자를 추가해야하고 terminate = 1 인 경우 두 번째 루프를 실행하지 마십시오. – user2402569

+0

@ user2402569 - 당신의 문제를 듣고 기쁘게 생각합니다. 솔루션에 대한 답이 가치 있다고 판단되면 자신의 답변을 추가 할 수 있습니다. 며칠 내로이 질문을 해결 된 것으로 표시하고 향후 방문자를 돕기 위해 수락 할 수 있습니다. 답변을 수락하면 좋은 2 명의 담당자 (그리고 내가 믿는 첫 번째 사람의 배지) – jcw

0

당신은 따라서는 FileNotFoundException이를 던졌습니다의 FileInputStream의 객체의 36

귀하의 초기화는 아마 실패 라인에 'gettext에() 메소드에서 NullPointerException이 있습니다. 따라서 FileInputStream 객체 'fip'은 여전히 ​​'null'입니다.

는 다음과 같은 try 블록에서 모든 코드를 넣어 :

try{   
     fip=new FileInputStream(this.getFilesDir()+"/currentNote"); 
     note = ""; 
     while(fip.available()>0){ 
      byte current=(byte)fip.read(); 
      note=note+String.valueOf(current); 
     } 
    } 
    catch(FileNotFoundException e){ 
     //handle exception 
    }catch (IOException e) { 
     //handle exception 
    } 
1

내가 그것을 해결! 다른 사용자가 동일한 문제를 겪고있는 경우 첫 번째 try/catch 위치에 부울 값을 추가 할 수 있습니다 (파일을 찾을 수 없다는 오류가 발생하면 읽지 마세요. 알아 내야 할 길이 멀다)

+0

+1 내 충고를 듣기 위해;) – jcw

관련 문제