Android MapView 的基于云的地图样式是否适用于虚拟设备?

Does cloud-based map styling for Android MapView work on virtual devices?

提问人:alstr 提问时间:11/8/2023 更新时间:11/20/2023 访问量:51

问:

我已经按照说明进行了操作,使基于云的地图样式与我的 Android 应用程序一起使用,但每次都会加载正常样式。

我已将地图 ID 链接到地图样式,并在布局资源文件中提供了地图 ID。

根据本文,基于云的地图样式需要新的地图渲染器才能工作。在活动中,我通过请求最新的渲染器,但是当我在回调中检查渲染器时,它始终是 .MapsInitializer.initializeLEGACY

Google Play 服务在模拟设备(搭载 Android 13.0 的 Pixel 7)上完全更新,并且有充足的存储空间。适用于 Android 的 Maps SDK 是 .com.google.android.gms:play-services-maps:18.2.0

基于云的地图样式是否适用于任何虚拟设备?

安卓 谷歌地图

评论


答:

1赞 Yrll 11/15/2023 #1

简短的回答是肯定的

更长的答案是你提到的。您需要新的地图渲染器才能使基于云的地图样式正常工作

截至默认渲染器已经是渲染器,因此无需选择加入com.google.android.gms:play-services-maps:18.2.0

在此之前,您仍然需要选择使用新地图渲染器。但是,在撰写此答案时,指向新地图渲染器文档的链接现在指定选择退出新地图渲染器以继续使用旧地图渲染器18.2

因此,请确保您没有实际选择退出新地图渲染器MapsInitializer.initialize

在此之前,有时您需要等待渲染器包含在模拟器中,因此在创建虚拟新设备后可能需要等待一段时间18.2LATEST

话虽如此,以下是您需要确保的内容:

以下示例证明基于云的地图样式在 Android Studio 中使用的虚拟设备中运行良好:Pixel 3 API 33

Emulator sample

使用和修改的 repo:https://github.com/googlemaps/android-samples

评论

0赞 alstr 11/16/2023
很高兴知道它确实有效。至于为什么它对我不起作用,我不完全确定。你说的一切我都涵盖了,但始终是渲染器。它必须像您提到的关于它包含在模拟器中一样。我将尝试不同的 API 级别/设备,看看它有什么不同。LEGACY
0赞 Yrll 11/16/2023
哦,对了!完全忘了提到您必须在 Google Play 上使用模拟器。
0赞 Yrll 11/16/2023
我编辑了我的答案,也包括了它。
1赞 alstr 11/18/2023
我实际上已经尝试过 Google Play 设备。我又试了一次,但仍然没有用。但后来我注意到通知托盘中有一个“设置您的设备”提示。我这样做了,重新启动了应用程序,它起作用了。如果您将其添加到“创建虚拟新设备后等待一段时间”部分,我将接受此答案。谢谢。
1赞 alstr 11/20/2023
潜在。这很容易错过,而且并不完全明显 - 特别是因为我已经在 Play 商店中更新了 Play 服务。