在LG 4G Stylus上拍摄"无法找到默认构造函数"之后Android应用程序崩溃

Pil*_*ouk 5 android android-intent android-camera xamarin

在LG 4G Stylus设备上拍照后我的应用程序崩溃了.它在Galaxy nexus,Galaxy S4,LG 4G上运行良好.

我不能把手指放在它上面,它让我发疯...

我正在使用viewpager为我的图像和使用theses清单配置:

<activity android:name="easydeal_android.MainActivity" android:configChanges="orientation|screenSize" android:windowSoftInputMode="adjustPan|stateHidden">
Run Code Online (Sandbox Code Playgroud)

如果有人可以帮助我,我真的很感激!

这是一个例外: Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: System.NotSupportedException: Unable to find the default constructor on type EasyDeal_Android.FragmentDetailsVehicle. Please provide the missing constructor. ---> Java.Interop.JavaLocationException: Exception of type 'Java.Interop.JavaLocationException' was thrown.

这是跟踪:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
    ... 1 more
Caused by: md52ce486a14f4bcd95899665e9d932190b.JavaProxyThrowable: System.NotSupportedException: Unable to find the default constructor on type EasyDeal_Android.FragmentDetailsVehicle.  Please provide the missing constructor. ---> Java.Interop.JavaLocationException: Exception of type 'Java.Interop.JavaLocationException' was thrown.
Java.Lang.Error: Exception of type 'Java.Lang.Error' was thrown.
  --- End of managed exception stack trace ---
java.lang.Error: Java callstack:
    at mono.android.TypeManager.n_activate(Native Method)
    at mono.android.TypeManager.Activate(TypeManager.java:7)
    at md56d2061e530d4ae630a81127536162064.FragmentDetailsVehicle.<init>(FragmentDetailsVehicle.java:27)
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at java.lang.Class.newInstance(Class.java:1572)
    at android.app.Fragment.instantiate(Fragment.java:611)
    at android.app.FragmentState.instantiate(Fragment.java:104)
    at android.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1775)
    at android.app.Activity.onCreate(Activity.java:946)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:257)
    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:58)
    at md56d2061e530d4ae630a81127536162064.MainActivity.n_onCreate(Native Method)
    at md56d2061e530d4ae630a81127536162064.MainActivity.onCreate(MainActivity.java:36)
    at android.app.Activity.performCreate(Activity.java:6021)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
    at android.app.ActivityThread.access$800(ActivityThread.java:155)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1323)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5376)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)
  --- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () <0x00028>
at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (intptr,intptr,intptr,Android.Runtime.JValue*) <0x000e7>
at Android.App.Activity.OnCreate (Android.OS.Bundle) <0x001cb>
at EasyDeal_Android.MainActivity.OnCreate (Android.OS.Bundle) <0x0001f>
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (intptr,intptr,intptr) <0x0005b>
at (wrapper dynamic-method) object.1f7fe7fe-50ae-47b3-b6d7-d47312e8dfe6 (intptr,intptr,intptr) <0x00043>
    at md56d2061e530d4ae630a81127536162064.MainActivity.n_onCreate(Native Method)
    at md56d2061e530d4ae630a81127536162064.MainActivity.onCreate(MainActivity.java:36)
    at android.app.Activity.performCreate(Activity.java:6021)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2405)
    at android.app.ActivityThread.access$800(ActivityThread.java:155)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1323)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5376)
    ... 4 more
Run Code Online (Sandbox Code Playgroud)

编辑:

它确实解决了这个问题,但是在拍摄了多张照片之后它仍然会崩溃:

10-23 15:57:56.783   839  1707 I WindowState: WIN DEATH: Window{2380813b u0 adnt.easydeal/md56d2061e530d4ae630a81127536162064.MainActivity}
10-23 15:57:56.793   839  1682 I ActivityManager: Process adnt.easydeal (pid 2787) has died
10-23 15:57:56.793   839  1682 W ActivityManager: Force removing ActivityRecord{2e8c2d28 u0 adnt.easydeal/md56d2061e530d4ae630a81127536162064.MainActivity t2019}: app died, no saved state
Run Code Online (Sandbox Code Playgroud)

Mar*_*ski 12

看起来你的FragmentDetailsVehicle课程中有自定义构造函数,但是你也需要手工添加默认构造函数,即使它没有真正做到:

public FragmentDetailsVehicle() {}
Run Code Online (Sandbox Code Playgroud)

请参阅:https://developer.android.com/reference/android/app/Fragment.html

Fragment的所有子类都必须包含公共无参数构造函数.框架通常会在需要时重新实例化一个片段类,特别是在状态恢复期间,并且需要能够找到此构造函数来实例化它.如果无参数构造函数不可用,则在状态还原期间的某些情况下将发生运行时异常.