Xamarin.Forms属性未保存在Android的Release中

pfe*_*sky 5 c# properties xamarin.android xamarin xamarin.forms

我正在使用Xamarin.Forms和Application.Current.Properties来保留用户设置。我正在Android上对其进行测试,效果很好

  • 在调试模式下
  • 在释放模式下且链接器配置设置为“ 无”

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

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

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

如何在不将链接器配置设置为“无”的情况下将应用程序属性保留在Release build中?它是已知的Xamarin错误吗?

Fla*_*239 4

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

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

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


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