Reputation: 860
I'm using intents and I'm wondering why my application keeps crashing when they press the back button. I have tried:
if(data.getExtras() != null)
but that still doesn't work. Is there a more correct way to do this?
Oops, sorry for not being specific. D:
Stacktrace:
E/AndroidRuntime(19352): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1337, result=0, data=null} to activity {com.smilingdevil.Day5/com.smilingdevil.Day5.BopActivity}: java.lang.NullPointerException
E/AndroidRuntime(19352): at android.app.ActivityThread.deliverResults(ActivityThread.java:2883)
E/AndroidRuntime(19352): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2925)
E/AndroidRuntime(19352): at android.app.ActivityThread.access$2000(ActivityThread.java:132)
E/AndroidRuntime(19352): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1063)
E/AndroidRuntime(19352): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(19352): at android.os.Looper.loop(Looper.java:143)
E/AndroidRuntime(19352): at android.app.ActivityThread.main(ActivityThread.java:4196)
E/AndroidRuntime(19352): at java.lang.reflect.Method.invokeNative(NativeMethod)
E/AndroidRuntime(19352): at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(19352): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(19352): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(19352): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(19352): Caused by: java.lang.NullPointerException
E/AndroidRuntime(19352): at com.smilingdevil.Day5.BopActivity.onActivityResult(BopActivity.java:167)
E/AndroidRuntime(19352): at android.app.Activity.dispatchActivityResult(Activity.java:4010)
E/AndroidRuntime(19352): at android.app.ActivityThread.deliverResults(ActivityThread.java:2879)
E/AndroidRuntime(19352): ... 11 more
W/ActivityManager( 1337): Force finishing activity com.smilingdevil.Day5/.BopActivity
Upvotes: 1
Views: 706
Reputation: 10479
You're crashing because data is null. You need to do the check if(data != null && data.getExtras() != null). There is no guarantee that the activity that has finished has included any data as part of setting its result.
Upvotes: 1
Reputation: 16898
Are you handling the result of calling the camera intent with the onactivityResult(int requestCode, int resultCode, Intent data)
method?
If so, make sure you're checking the resultCode -
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// first, check that your requestCode matches the requestCode you sent to the
// camera intent - this should really only matter if you're making multiple
// requests to an intent and expecting to do different things with the returns,
// but you should check anyway.
if (requestCode == whateverCodeYouUsedInRequest) {
if (resultCode == RESULT_OK) {
// everything should be OK and you can process the expected result
} else if (resultCode == RESULT_CANCELED) {
// user explicitly canceled the called activity - you shouldn't
// expect to process the expected result.
} else {
// not sure what happened here - but result isn't 'RESULT_OK' so
// you shouldn't expect to process the expected result.
}
}
}
Upvotes: 1