【问题标题】:Error deserializing Google-services.json file反序列化 Google-services.json 文件时出错
【发布时间】:2019-06-26 19:43:01
【问题描述】:

尝试按照说明通过 MS 应用中心设置推送通知。所以我按照说明在 Firebase 控制台中创建了一个应用程序,然后从那里下载了 google-services.json 文件。将其复制到我的项目并将构建操作修复为 GoogleServicesJson。在 Firebase、App Center 和我的代码中完成了其余的设置。但是当我尝试构建时,出现以下错误-There was an error deserializing the object of type Xamarin.GooglePlayServices.Tasks.GoogleServices

堆栈跟踪给了我这个信息:

There was an error deserializing the object of type Xamarin.GooglePlayServices.Tasks.GoogleServices. Encountered an unexpected character 'ï' in JSON. ---> System.Xml.XmlException: Encountered an unexpected character 'ï' in JSON.

但我在文件中的任何地方都没有看到 ï。搜索了这个问题,发现人们使用解析器来解决这个问题,但我不确定在哪里应用所述解析器。 有人遇到过这种情况吗?

这是文件的样子

{
  "project_info": {
    .. Configuration info ..
  },
  "client": [
    {
      .. Lots of lines ..
    }
  ],
  "configuration_version": "1"
}

【问题讨论】:

  • 我会假设 json 文件有一个 BOM(unicode)序列。在编辑器(vi 等)中打开文件,允许您将其重新保存为 ascii / UTF-8 / etc 编码文件(不是基于 unicode 的文件)

标签: xamarin xamarin.android visual-studio-app-center


【解决方案1】:

所以,我在 Visual Studio 中右键单击该文件,然后选择“十六进制编辑器”。 瞧,ï 是文件的第一个字符,以及左大括号之前的 >>?{

所以我删除了左大括号之前的多余字符,错误得到解决。现在到其他错误...

【讨论】:

  • 这个角色是从哪里来的?您现在可能已经解决了它,但您认为它可能会再次出现吗?如果是,那么我将在原始字符串上使用字符串替换函数,然后将其保存@Saamer
  • @NSDumb 这是文件的 BOM 标头,我假设它是在 Visual Studio 中打开并重新保存,因为从 google/firebase 下载时不是这样。
  • 是的,这与发生的事情差不多。因为我在等待导演的许可,所以我在 Visual Studio 中创建了 google-services.json 文件,然后在我得到它时复制了它的内容。我意识到当在十六进制编辑器中查看时,Visual Studio 会自动创建该字符。是的,我验证过,如果您只是从 Visual Studio 添加文件,则不会发生这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多