#xamarin.forms #mvvmcross
#xamarin.forms #mvvmcross
Вопрос:
У меня есть приложение Xamarin Forms для Android с MvvmCross, и я вижу несколько таких исключений в своих инсайтах.
Когда приложение запускается с нуля, все работает нормально. Насколько я могу судить, эта ошибка возникает, когда приложение переводится в режим гибернации и запускается снова.
У меня есть SplashScreenActivity, который определяет класс настройки следующим образом:
MvxFormsSplashScreenActivity<ApplicationSetup, CoreApp, App>
В случае, если это поможет, проект с открытым исходным кодом, и код находится здесь: https://github.com/MoneyFox/MoneyFox
Как я могу это исправить?
Ошибка:
Package: com.applysolutions.moneyfox
Version Code: 2019099001
Version Name: 5.1.2019099.001
Android: 9
Android Build: PQ2A.190405.003
Manufacturer: Google
Model: Pixel 3
CrashReporter Key: c69e70df-a610-4112-be05-e3869f130474
Date: undefined
Xamarin Exception Stack:
MvvmCross.Exceptions.MvxException: Failed to create setup instance
at MvvmCross.Core.MvxSetupSingleton.CreateSetup () [0x00017] in <5379a95ac98a4680b7bb47f5b716a158>:0
at MvvmCross.Core.MvxSetupSingleton.EnsureSingletonAvailable[TMvxSetupSingleton] () [0x00045] in <5379a95ac98a4680b7bb47f5b716a158>:0
at MvvmCross.Platforms.Android.Core.MvxAndroidSetupSingleton.EnsureSingletonAvailable (Android.Content.Context applicationContext) [0x00000] in <5379a95ac98a4680b7bb47f5b716a158>:0
at MvvmCross.Forms.Platforms.Android.Views.MvxFormsAppCompatActivity.OnCreate (Android.OS.Bundle bundle) [0x00006] in <4ea0c9ab37e14fd8aa188ddf8fa8736e>:0
at MoneyFox.Droid.MainActivity.OnCreate (Android.OS.Bundle bundle) [0x00052] in <2cfc40e7b7be4d839b84f168044b373f>:0
at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <8ac02975c09144d5ae9c10aecc6be0c2>:0
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.9(intptr,intptr,intptr)
--- End of inner exception stack trace ---
MvvmCross.Exceptions.MvxException: Could not find a Setup class for application
at MvvmCross.Core.MvxSetupExtensions.CreateSetup[TSetup] () [0x00019] in <5379a95ac98a4680b7bb47f5b716a158>:0
at MvvmCross.Core.MvxSetup.Instance () [0x00015] in <5379a95ac98a4680b7bb47f5b716a158>:0
at MvvmCross.Core.MvxSetupSingleton.CreateSetup () [0x00000] in <5379a95ac98a4680b7bb47f5b716a158>:0
Thread 2:
0 dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
1 java.lang.Thread.getStackTrace(Thread.java:1538)
2 java.lang.Thread.getAllStackTraces(Thread.java:1588)
3 com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:943)
4 com.microsoft.appcenter.crashes.WrapperSdkExceptionManager.saveWrapperException(WrapperSdkExceptionManager.java:50)
5 md5a0013181b845adff0c8407b475a96272.MainActivity.n_onCreate(MainActivity.java:-2)
6 md5a0013181b845adff0c8407b475a96272.MainActivity.onCreate(MainActivity.java:30)
7 android.app.Activity.performCreate(Activity.java:7144)
8 android.app.Activity.performCreate(Activity.java:7135)
9 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
10 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2931)
11 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3086)
12 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
13 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
14 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
15 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1816)
16 android.os.Handler.dispatchMessage(Handler.java:106)
17 android.os.Looper.loop(Looper.java:193)
18 android.app.ActivityThread.main(ActivityThread.java:6718)
19 java.lang.reflect.Method.invoke(Method.java:-2)
20 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
21 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Thread 6698:
0 java.lang.Object.wait(Object.java:-2)
1 java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
2 java.lang.Daemons$Daemon.run(Daemons.java:103)
3 java.lang.Thread.run(Thread.java:764)
Thread 6699:
0 java.lang.Object.wait(Object.java:-2)
1 java.lang.Object.wait(Object.java:422)
2 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
3 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
4 java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
5 java.lang.Daemons$Daemon.run(Daemons.java:103)
6 java.lang.Thread.run(Thread.java:764)
Thread 6700:
0 java.lang.Thread.sleep(Thread.java:-2)
1 java.lang.Thread.sleep(Thread.java:373)
2 java.lang.Thread.sleep(Thread.java:314)
3 java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342)
4 java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364)
5 java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281)
6 java.lang.Daemons$Daemon.run(Daemons.java:103)
7 java.lang.Thread.run(Thread.java:764)
Thread 6707:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:326)
2 android.os.Looper.loop(Looper.java:160)
3 android.os.HandlerThread.run(HandlerThread.java:65)
Thread 6709:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:326)
2 android.os.Looper.loop(Looper.java:160)
3 android.os.HandlerThread.run(HandlerThread.java:65)
Thread 6710:
0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
1 android.os.MessageQueue.next(MessageQueue.java:326)
2 android.os.Looper.loop(Looper.java:160)
3 android.os.HandlerThread.run(HandlerThread.java:65)
РЕДАКТИРОВАТЬ: я попробовал, если он ведет себя по-другому, когда я отключаю связывание. Но это не возымело эффекта.