뒤로 가기를 누르면
에러가 납니다.
09-23 16:03:48.960: D/SKIA_FONT(18754): load_system_fonts(), name = Droid Sans, style = 0, uniqueID = 27
09-23 16:03:49.062: D/SKIA_FONT(18754): load_system_fonts(), name = Droid Sans Fallback, style = 0, uniqueID = 28
09-23 16:03:49.062: D/SKIA_FONT(18754): load_system_fonts(), oldSansUID = 1, newSansUID = 15
09-23 16:03:49.062: D/SKIA_FONT(18754): load_system_fonts(), oldSansBoldUID = 2, newSansBoldUID = 16
09-23 16:03:55.738: W/KeyCharacterMap(18754): Can't open keycharmap file
09-23 16:03:55.738: W/KeyCharacterMap(18754): Error loading keycharmap file '/system/usr/keychars/sec_touchkey.kcm.bin'. hw.keyboards.65537.devname='sec_touchkey'
09-23 16:03:55.738: W/KeyCharacterMap(18754): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
09-23 16:04:08.308: D/AndroidRuntime(18754): Shutting down VM
09-23 16:04:08.308: W/dalvikvm(18754): threadid=1: thread exiting with uncaught exception (group=0x4001e578)
09-23 16:04:08.316: E/AndroidRuntime(18754): FATAL EXCEPTION: main
09-23 16:04:08.316: E/AndroidRuntime(18754): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {com.example.aram/com.example.aram.OpenList}: java.lang.NullPointerException
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.ActivityThread.deliverResults(ActivityThread.java:2536)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2578)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.ActivityThread.access$2000(ActivityThread.java:117)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:965)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.os.Handler.dispatchMessage(Handler.java:99)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.os.Looper.loop(Looper.java:130)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.ActivityThread.main(ActivityThread.java:3687)
09-23 16:04:08.316: E/AndroidRuntime(18754): at java.lang.reflect.Method.invokeNative(Native Method)
09-23 16:04:08.316: E/AndroidRuntime(18754): at java.lang.reflect.Method.invoke(Method.java:507)
09-23 16:04:08.316: E/AndroidRuntime(18754): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
09-23 16:04:08.316: E/AndroidRuntime(18754): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
09-23 16:04:08.316: E/AndroidRuntime(18754): at dalvik.system.NativeStart.main(Native Method)
09-23 16:04:08.316: E/AndroidRuntime(18754): Caused by: java.lang.NullPointerException
09-23 16:04:08.316: E/AndroidRuntime(18754): at com.example.aram.OpenList.onActivityResult(OpenList.java:49)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.Activity.dispatchActivityResult(Activity.java:3908)
09-23 16:04:08.316: E/AndroidRuntime(18754): at android.app.ActivityThread.deliverResults(ActivityThread.java:2532)
09-23 16:04:08.316: E/AndroidRuntime(18754): ... 11 more
Null 일 경우에 대한 처리를 어떻게 해야할지 모르겟어요
자바 49번 라인부터
if( data.getAction().equals("RESET")){
mFileList = fileList();
this.setListAdapter(new ArrayAdapter<String>(this,R.layout.list, mFileList));
Intent intent = new Intent(OpenList.this, Message.class);
intent.putExtra("MESSAGE", DEL_COMPLETE);
intent.putExtra("DEL_OK", sReadFile[FILENAME]);
startActivity(intent);
}
이건데요 어찌 바꿔야할지 모르겠습니다. 도와주세요
if( data.getAction().equals("RESET")){
mFileList = fileList();
this.setListAdapter(new ArrayAdapter<String>(this,R.layout.list, mFileList));
Intent intent = new Intent(OpenList.this, Message.class);
intent.putExtra("MESSAGE", DEL_COMPLETE);
intent.putExtra("DEL_OK", sReadFile[FILENAME]);
startActivity(intent);
else if(data.getAction().equals(null){
finish();
}
}
이렇게 하면되나요?
com.example.aram.OpenList.onActivityResult 49번 라인 확인해보시고요
제가 보기엔 액티비티 결과 처리하는 것에 Intent 가 Null 일 경우에 대한 처리가 안된 것 같네요.
가장 대표적인 사례가 갤러리에서 이미지를 Pick 하는 경우에
사용자가 Back 키로 이미지 Pick 을 취소하면 Intent 정보가 Null 로 들어오는데 이에 대해 Null 방어코드가 없는 경우에 발생하죠