我已检查了所有在Stack Overflow上提出的类似问题,但是找不到答案来解决我的问题。
我们在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中是否有可能重现此问题?
谢谢。
App.Current.Properties.TryGetValue
获取应用程序的属性,如果它们存在,则使用App.Current.Properties["your_property"] = ...
进行重写,或者创建新的App.Current.Properties.Add("your_property", "default_value")
。 - Денис Чорный