【问题标题】:Xamarin.Forms properties are not saved in Release on AndroidXamarin.Forms 属性未保存在 Android 上的 Release 中
【发布时间】:2016-04-11 22:12:56
【问题描述】:

我正在使用 Xamarin.Forms 和 Application.Current.Properties 来保留用户设置。我正在 Android 上测试它,它运行良好

  • 处于调试模式
  • 处于发布模式,链接器配置设置为 None

但它不适用于设置为 SDK Assemblies Only 的链接器配置。 我正在通过将 APK 文件直接部署到设备进行测试。然后我尝试输入一些设置并重新启动应用程序 - 重新启动后所有设置都丢失了。我没有使用复杂的数据类型,只有 stringbool

我在这里找到了建议的解决方法:https://forums.xamarin.com/discussion/30723/problems-with-application-current-properties。 它建议忽略 Xamarin.Forms.Core 程序集,但它没有帮助。

当链接器配置设置为 None 时,APK 会很大(50mb!)。我想避免这种情况。

如何在不将链接器配置设置为 None 的情况下在 Release 构建中保留应用程序属性?这是一个已知的 Xamarin 错误吗?

【问题讨论】:

  • 你在存储什么,因为它可能会在保存时吞下一个异常。
  • 您是否通过从 IDE 重复部署应用程序来测试这一点?如果是这样,您可能每次都会覆盖已保存的数据。对于 Android,可以选择在部署时保留应用数据。
  • 你找到任何解决方案/解决方法了吗?

标签: c# xamarin xamarin.forms properties xamarin.android


【解决方案1】:

首先,来自 xamarin docs(https://developer.xamarin.com/guides/xamarin-forms/working-with/application-class/#Properties_Dictionary):

注意:Properties 字典只能序列化原始类型进行存储。尝试存储其他类型(例如 List 可能会静默失败)。

如果要存储非原始类型,例如可以使用Newtonsoft.Json序列化器将其转换为JSON字符串,然后写入Properties(从Properties读取时不要忘记反序列化)


顺便说一句,有一个已知的错误:属性在 Android 上的发布模式下不起作用。 建议使用Settings Plugin,效果很好。

【讨论】:

  • OP 已经声明(可能作为您回答后的编辑)他们只保存原语。 (y)
猜你喜欢
  • 1970-01-01
  • 2019-04-18
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 2019-09-13
  • 2018-11-26
相关资源
最近更新 更多