I made an application with two buttons
- select image from gallery
- one to take a new image using the camera
The gallery selection process works fine if I take a picture with the camera, it continues to receive the Failure delivering result ResultInfo . And it looks like the image is not being written to the folder.
Since both return the same, I have one handler to handle the result;
protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if (resultCode == RESULT_OK && data.getData() != null){ try { Log.i("YADDA",data.getData().toString()); Uri targetUri = data.getData(); if (targetUri != null) {
Button handlers
nsbu1.setOnClickListener(new Button.OnClickListener() { public void onClick(View v){ Intent photoPickerIntent = new Intent(Intent.ACTION_PICK); photoPickerIntent.setType("image/*"); startActivityForResult(photoPickerIntent, 1); } }); nsbu2.setOnClickListener(new Button.OnClickListener() { public void onClick(View v){ Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Things I tried:
- I double-checked the manifest for write permissions on the SD card
- wierd thing, the handler must be right, because the image from the gallery works great
- Some versions of Android have a bug with this camera handler, but I check that my Nexus S is not one of them.
- googled / debugged for watches and clocks
Logcat output;
09-01 10:02:59.085: ERROR/AndroidRuntime(1898): FATAL EXCEPTION: main 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { act=inline-data (has extras) }} to activity {com.android.spot/com.android.spot.newsite}: java.lang.NullPointerException 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.deliverResults(ActivityThread.java:2532) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2574) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.access$2000(ActivityThread.java:117) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:961) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.os.Handler.dispatchMessage(Handler.java:99) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.os.Looper.loop(Looper.java:130) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.main(ActivityThread.java:3683) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at java.lang.reflect.Method.invokeNative(Native Method) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at java.lang.reflect.Method.invoke(Method.java:507) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at dalvik.system.NativeStart.main(Native Method) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): Caused by: java.lang.NullPointerException 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at com.android.spot.newsite.onActivityResult(newsite.java:351) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.Activity.dispatchActivityResult(Activity.java:3908) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): at android.app.ActivityThread.deliverResults(ActivityThread.java:2528) 09-01 10:02:59.085: ERROR/AndroidRuntime(1898): ... 11 more
source share