我在我的应用中使用片段中的原生相机应用。但它会随机抛出IllealArgumentException错误。有时候它有效地完成它有时它不会。
当我保存图像时捕获图像后,应用程序崩溃抛出错误会发生什么。我想这是因为我在我的应用程序中使用嵌套片段。
我的活动首先在framelayout中启动“HomeFragment”。这个“HomeFragment”里面还有一个framelayout,它的子片段就会被启动。
我捕获图像的片段也是这些子片段之一。
这是我的捕获代码 -
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
这就是我在onActivityResult方法中所做的,这就是我在片段本身中重写的方式。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {
if (resultCode == getActivity().RESULT_OK) {
previewCapturedImage();
} else if (resultCode == getActivity().RESULT_CANCELED) {
Toast.makeText(getActivity(),
"Image capturing cancelled.", Toast.LENGTH_SHORT)
.show();
} else {
Toast.makeText(getActivity(),
"Sorry! Failed to capture image", Toast.LENGTH_SHORT)
.show();
}
}
}
这是logcat数据 -
05-30 11:39:31.885 12798-12798/com.cgt.myHAE W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x4128f930)
05-30 11:39:34.908 12798-12798/com.cgt.myHAE E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cgt.myHAE/com.cgt.myHAE.MyHAE_HomeActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f09007e (com.cgt.myHAE:id/myAttackFrame) for fragment myAttackListFrag{41e73ea8 #5 id=0x7f09007e}
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3783)
at android.app.ActivityThread.access$800(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1286)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5283)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f09007e (com.cgt.myHAE:id/myAttackFrame) for fragment myAttackListFrag{41e73ea8 #5 id=0x7f09007e}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1181)
at android.app.Activity.performStart(Activity.java:5293)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3783)
at android.app.ActivityThread.access$800(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1286)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5283)
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:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
05-30 11:39:36.149 12798-12802/com.cgt.myHAE D/dalvikvm﹕ GC_CONCURRENT freed 3349K, 13% free 24012K/27588K, paused 4ms+3ms, total 27ms