首页 > 解决方案 > json地图样式解析在android中失败

问题描述

我想创建一个 JSON 文件来设置我的谷歌地图的样式,但我收到以下消息:E/Google Maps Android API:地图样式解析失败:org.json.JSONException:java.lang.String 类型的值 res 无法转换为 JSONArray E/MapsActivityRaw:样式解析失败。有什么帮助吗? 这是我的代码示例,其中我有创建 JSON 的方法,在左侧您可以看到 JSON 文件所在的原始包

这是我得到的错误

我使用了谷歌平台 mapstyle.withgoogle.com。但我不确定的是,我创建了一个文本文档,然后将结尾更改为 .json,从谷歌平台复制 JSON 代码并将其放在那里,然后复制文件并将其放入 android studio。因为我不知道如何在 android studio 中创建 JSON 文件。我不知道这听起来是否正确?

标签: androidjsongoogle-maps

解决方案


在我之前留下的评论中,是因为我没有解决方案,但是在仔细查看google文档时,我意识到有两种类型的代码可以实现样式,一种是JSON文件,另一种是字符串

对于您在图像中显示的代码,它必须具有 style_gray 字符串资源,对于这种情况,我假设您将在 string.xml 中有一个 xml 文件或该变量,您可以使用相同的代码,如下所示:

googleMap.setMapStyle(new MapStyleOptions(getResources().getString(R.raw.map_style_aubergine)));

要解决该错误,您必须实现此其他代码,如果它与https://mapstyle.withgoogle.com/生成的格式的 JSON 文件兼容,则代码如下:

googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(this,R.raw.map_style_aubergine));

在我的情况下,map_style_aubergine是 JSON 文件和 string.xml 中的一个变量,您可以将此作为示例并在您的代码中进行相应的更正


推荐阅读