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

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

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

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

现在我们正在切换到 Xamarin.Forms。我们已经改变了, 一些用户界面 基于本地设备中存储的Token的自动登录登录机制。

该应用程序在设备和模拟器中运行良好。

我们已将应用程序上传到 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 中重现此问题?

谢谢

最佳答案

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

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

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

关于visual-studio - Xamarin.Forms 应用程序更新后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51869852/

相关文章:

visual-studio - Azure Sdk for vs2013.4 不起作用

c# - 在 Visual Studio Express 中计算方法执行时间(没有可用的探查器)?

css - 获得 500 像素宽的设计以在不同的屏幕尺寸上正确呈现

Xamarin - apk 应用程序大小

visual-studio - Visual Studio 2010 Express 中的编译器的优化程度是否低于 Professional 版本的编译器?

html - Openwave 移动浏览器错误解释 CSS 子选择器和后代选择器

mobile - 手机上,是不是有一个 "mac address",让每部手机都不一样?

c# - 任务不包含内容的定义

Xamarin Forms-TableView - 转到第一个元素

c# - 从代码中检测当前 VSIX 包的版本