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

时间:2016-04-11 22:12:56

标签: c# android xamarin xamarin.forms

我使用Xamarin.Forms和Application.Current.Properties来持久保存用户设置。我在Android上测试它并且运行正常

  • 在调试模式下
  • 在发布模式下,链接器配置设置为

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

我在此处找到了一个解决方法:https://forums.xamarin.com/discussion/30723/problems-with-application-current-properties。 它建议忽略Xamarin.Forms.Core汇编,但它没有帮助。

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

如何在不将链接器配置设置为None的情况下在Release版本中保留应用程序属性?它是一个已知的Xamarin bug吗?

1 个答案:

答案 0 :(得分:3)

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

  

注意:“属性”字典只能序列化基本类型以进行存储。试图存储其他类型(例如List可以无声地失败)。

如果要存储非基本类型,可以使用Newtonsoft.Json序列化程序将其转换为JSON字符串,然后写入属性(当您从属性中读取时不要忘记反序列化)

顺便说一句,知道错误:在Android上,属性在发布模式下无效。 建议使用Settings Plugin,它运作良好。