Xamarin.Forms应用程序在更新后崩溃

WPF*_*ser 11 mobile visual-studio xamarin.ios xamarin.android xamarin.forms

我已经检查了SO中提出的所有问题,我无法找到问题的答案.

我们在PlayStore中有一个应用程序,它是在Xamarin.Android中开发的,代码通过共享项目与Xamarin.iOS共享.

现在我们切换到Xamarin.Forms.我们已经更改了一些基于存储在本地设备中的令牌的AutoLogin的UI登录机制.

该应用程序在设备和模拟器中正常工作.

我们已将我们的应用程序上传到Playstore.如果用户在其设备中使用旧版本,则在显示启动画面几秒钟后更新应用程序崩溃.如果我们卸载旧版本,它工作正常.

谷歌控制台出错:

    java.lang.RuntimeException:

at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2955)

at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java030)

at android.app.ActivityThread.-wrap11 (Unknown Source)

at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1696)

at android.os.Handler.dispatchMessage (Handler.java:105)

at android.os.Looper.loop (Looper.java:164)

at android.app.ActivityThread.main (ActivityThread.java:6938)

at java.lang.reflect.Method.invoke (Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java27)

at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)

Caused by: java.lang.ClassCastException:

at android.app.SharedPreferencesImpl.getLong (SharedPreferencesImpl.java:279)

at md56c96bd185bfbb3ebebdd94ef17444e8f.MainActivity.n_onCreate (Native Method)

at md56c96bd185bfbb3ebebdd94ef17444e8f.MainActivity.onCreate (MainActivity.java1)

at android.app.Activity.performCreate (Activity.java:7174)

at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1220)

at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2908)
Run Code Online (Sandbox Code Playgroud)

我们不确定为什么会这样.任何人都可以告诉我,为什么会发生这种情况以及如何防止它.此外,是否可以在VisualStudio中重现此问题?

谢谢

Acc*_*ied 1

可能您的 SharedPreferences 参数具有不兼容的类型。而且我没有找到证据表明这可能是 xamarin.Forms 问题。如果您查看getLong 方法的SharedPreferencesImpl.java源代码,您将看到以下转换:

Long v = (Long)mMap.get(key);
Run Code Online (Sandbox Code Playgroud)

这意味着在旧版本中存在名称相同但类型与 Long 不同的参数。您在 MainActivity 的 onCreate 方法中读取了此参数,但参数类型不兼容。