2014-09-04 57 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

相關問題