2014-09-04 58 views
2

在编写问题之前,我进行了大量搜索。 我有一个意图从extra_output从摄像头中选择一个图像存储在UriACTION_IMAGE_CAPTURE意图在横向相机方向上返回时无法恢复onActivityResult上的活动

当图像被捕获到肖像和/或没有自动旋转完美的作品。 但是,如果你在风景和自动旋转有些模型给我错误。

我的意图代码:

Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
camera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(imageFile)); 
startActivityForResult(camera, REQUEST_CAMERA); 

我onActivityResult片段代码:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    ImageView imageFoto = (ImageView) findViewById(R.id.imageIncidenciaDetail); 
    imatgeOriginal = null; 

    if (requestCode == REQUEST_CAMERA && resultCode == RESULT_OK) { 
     //if(imageFile != null) 
     imatgeOriginal = BitmapFactory.decodeFile(imageFile.getAbsolutePath()); 

我实际上有两个不同的错误:

java.lang.RuntimeException: Unable to resume activity  {com.vicopo.com.lapoblainfo/com.vicopo.com.lapoblainfo.incidencia_detail}:  java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {com.vicopo.com.lapoblainfo/com.vicopo.com.lapoblainfo.incidencia_detail}: java.lang.NullPointerException 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2899) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2928) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363) 
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3865) 
at android.app.ActivityThread.access$700(ActivityThread.java:156) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:153) 
at android.app.ActivityThread.main(ActivityThread.java:5297) 
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:833) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,  request=1, result=-1, data=null} to activity   {com.vicopo.com.lapoblainfo/com.vicopo.com.lapoblainfo.incidencia_detail}:    java.lang.NullPointerException 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3488) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2883) 
... 13 more 
Caused by: java.lang.NullPointerException 
at com.vicopo.com.lapoblainfo.incidencia_detail.onActivityResult(incidencia_detail.java:145) 
at android.app.Activity.dispatchActivityResult(Activity.java:5311) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3484) 
... 14 more 

而且

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity  {com.vicopo.com.lapoblainfo/com.vicopo.com.lapoblainfo.incidencia_detail}: java.lang.NullPointerException 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3135) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3178) 
at android.app.ActivityThread.access$1100(ActivityThread.java:134) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:4624) 
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:809) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
at com.vicopo.com.lapoblainfo.incidencia_detail.onActivityResult(incidencia_detail.java:145) 
at android.app.Activity.dispatchActivityResult(Activity.java:4663) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3131) 
... 11 more 

和Android清单活动代码:

<activity 
     android:name=".incidencia_detail" 
     android:label="@string/title_activity_incidencia_detail" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation" 
     > 

我可以,如果做一个,并检查该图像是不为空。如果我这样做的应用程序不会崩溃,但图像为空。

+0

在控制权从第三方相机应用程序返回给您之前,您的过程可能会终止。你如何保持'imageFile',这样它就不会在这种情况下是'null'? – CommonsWare 2014-09-04 20:40:13

+0

当你说“图像为空”时,你的意思是'imatgeOriginal'或'imageFoto'? – 2014-09-04 20:44:07

+0

当我说“图像为空”时,我的意思是imageFile imageFile是我传递给output_extra的文件 imageFoto是一个imageView。这永远不会为空,默认情况下,我把一个内部图像 imageOriginal是一个位图。 我将文件转换为位图当我从相机或图片库收到 我再次看到我的代码,我没有super.onActivityResult.That可能是问题? – Ausaes 2014-09-04 20:49:43

回答

1

节省您的ActivitysaveInstanceState(Bundle out)imageFile路径和恢复imageFileonCreate(Bundle savedInstanceState),如果savedInstanceState != null。您可能需要将imageFile作为String存储,以便将其保存到Bundle

相关问题