当前位置: 首页 > 知识库问答 >
问题:

如何为我的谷歌地图应用程序使用非Nexus 5模拟器和谷歌Play服务依赖项

杭永安
2023-03-14

我的测试方法涉及使用各种配置的许多模拟器(制造商/模型/维度/apis/目标)。

我最近升级到Android Studio 3.1。

我的应用程序现在已经运行了3年,使用谷歌地图v2,我想继续维护它(谷歌笑了)。

我现在拥有的每个模拟器(Nexus 5除外)都不起作用,因为它说Google Play服务需要更新,而且似乎没有办法解决它。Nexus 5模拟器没有错误,但显示空白地图背景。

当我试图消除对谷歌Play服务的任何依赖时,它最终会成为一个滑坡(主要是取代融合定位服务)。

问:如果我依赖谷歌Play服务(可能是我的第一个错误?)在我的Google Maps v2应用程序中,我是否仅限于Nexus 5模拟器(它似乎有自己的问题)?如果没有,那么如何升级其他优秀的模拟器(Pixel、其他Nexus、Galaxy?

我看到了其他问题,我会继续关注它们,但我想了解未来维护的可行途径是什么——删除依赖项,升级某些东西。。。

供参考:

与Nexus 5无关的错误是:

(应用程序)将不会运行,除非您更新Google Play服务

(还会显示一个大的“更新”按钮,该按钮会引发异常——可能是因为模拟器上没有安装该按钮。)

Nexus 5的相关错误是:

E/谷歌

(我无法在Nexus 5模拟器的AVD管理器中启用此功能。)

下面是一些典型的gradle疯狂——我试图将play services降低到11.8.0,但不幸的是,这种神奇的事情发生了(来自gradlew app:Dependences):

---com.google.Android游戏服务地图:11.8.0-

庆典

@小米正确地将问题归咎于play services(或者特别是play services maps)12.0.1,所以在一些gradle战役之后,我将所有play-*降低到了11.8.0,非Nexus模拟器也可以工作。

经验教训:

  • 永远不要盲目遵循gradle警告-升级版本的建议!
  • “gradlew应用程序:依赖项”是您的朋友。

结语

在遵循这一点之前,请反复思考:

共有1个答案

臧令
2023-03-14

在我们可以使用的最新Google Play服务和最新emulator可以处理的服务之间,经常会有延迟。

当模拟器上的应用程序要求更新时,一种解决方案是使用较低版本的Google Play服务。

如果地图显示为空白,通常是钥匙注册有问题

 类似资料:
  • 我想使用谷歌驱动器作为一个网站的准CMS工作,我正在使内容所有者可以编辑他们的内容使用谷歌驱动器。我希望使用一个可以访问Google Drive的特定用户帐户(在写这篇文章时,服务帐户不能直接访问Google Drive),并且能够与内容所有者共享文档。 在阅读了API和教程之后,我在委托中找到了答案:https://developers.google.com/drive/development

  • 我对谷歌地图方向服务(api v3)有一个问题。我不知道如何指定起始和目标字符串。例如,对于请求: http://maps.googleapis.com/maps/api/js?sensor=false 或者 http://maps.googleapis.com/maps/api/directions/xml?sensor=false 服务器的响应为:未找到,即未找到路由, 但是,如果我将字符¨改

  • 接下来,我生成了自己的OAuth2客户机ID并使用它。这种方法很简单,直到我开始收到来自Google的“匿名使用过期”错误,一段时间后我意识到这是因为密钥没有启用只读日历范围。 我的下一个想法是公开日历,并使用静态API密钥,但日历是从一个名为Peak Pro的预订服务中同步的,该服务用参加活动的客户的姓名、电子邮件和电话号码填充日历描述。我不能公开揭露那些。 接下来,我被吸引到了CalDAV A

  • WMS Web服务地理服务器WMS 我试图通过谷歌地图中的缩放级别获取选定纬度和经度上的平铺信息(I、J、BBOX)。 我用这个公式得到了I, J, BBOX公式源 基于缩放级别的问题我无法找到确切的值。。基于正确的值,我必须调用WMS Web服务 提前感谢... http://192.168.1.102:1005/geoserver/estater/wms?SERVICE=WMS

  • 02-14 13:09:38.184:e/databaseUtils(2348):向包写入异常02-14 13:09:38.184:e/databaseUtils(2348):java.lang.securityexception:权限拒绝:用户的get/set设置要求以用户-2的身份运行,但从用户0调用;这需要Android.permission.interact_across_users_fu