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

时间:2018-08-16 04:56:55

标签: visual-studio mobile xamarin.forms xamarin.ios xamarin.android

我已经检查了所有在SO中提出的问题,但找不到我的问题的答案。

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

现在,我们要切换到Xamarin.Forms。我们已经改变了, 一些UI 基于存储在本地设备中的令牌的具有自动登录功能的登录机制。

该应用在设备和模拟器中正常运行。

我们已将我们的应用上传到Playstore。如果用户的设备中使用的是旧版本,则更新后,显示启动屏幕几秒钟后,应用程序将崩溃。 如果我们卸载旧版本,则可以正常工作。

Google控制台错误:

    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)

我们不确定为什么会这样。任何人都可以让我知道为什么发生这种情况以及如何预防这种情况。此外,是否有可能在VisualStudio中重现此问题?

谢谢

1 个答案:

答案 0 :(得分:1)

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

Long v = (Long)mMap.get(key);

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