首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法解决这些谷歌地图v2 StackOverflowError崩溃的问题?

有没有办法解决这些谷歌地图v2 StackOverflowError崩溃的问题?
EN

Stack Overflow用户
提问于 2018-06-05 09:59:46
回答 1查看 2.1K关注 0票数 12

在我的与谷歌地图v2相关的生产应用程序中,每天都会发生数百次崩溃。

我甚至可以在Lyft,Yelp,Ritual应用程序上重现这个问题。

重现步骤

  1. 添加com.google.android.gms: Play -
  2. -maps 11.8.0或更高版本(也会在15.0.0中崩溃)应用程序
  3. 获取谷歌Play服务12.6.85 (040400-197041431)
  4. Add SupportMapFragment
  5. Open应用程序,位于美国加利福尼亚州旧金山的“任务区”上的中心地图
  6. 尝试非常快速地放大和缩小,或上下滚动但始终将遗失地区保持在中心

预期的

  1. No Crash

实际

  1. Crash

总而言之,崩溃影响了多个操作系统: 5,6,7,8。单独来看,我观察过的崩溃目标是1-2个操作系统的最大值,例如5+6,7,7+8。

堆栈跟踪似乎都涉及到com.google.maps.api.android.lib6.gmm6.indoor.*包。

这是我在AOSP Issue Tracker上看到的最接近的问题。查看有关该问题的副本,以了解具有不同堆栈跟踪的类似问题。

下面是我看到的一些堆栈跟踪的片段(还有更多):

代码语言:javascript
复制
Fatal Exception: java.lang.StackOverflowError: stack size 1038KB
       at java.util.HashMap.getEntry(HashMap.java:393)
       at java.util.HashMap.get(HashMap.java:348)
       at com.google.maps.api.android.lib6.gmm6.util.e.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685021@12.6.85 (040306-197041431):7)
       at com.google.maps.api.android.lib6.gmm6.indoor.o.c(:com.google.android.gms.dynamite_dynamitemodulesb@12685021@12.6.85 (040306-197041431):193)

Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
      at java.util.HashMap.createEntry(HashMap.java:826)
      at java.util.HashMap.addEntry(HashMap.java:813)
      at java.util.HashMap.put(HashMap.java:436)
      at com.google.maps.api.android.lib6.gmm6.util.e.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685025@12.6.85 (040408-197041431):17)
      at com.google.maps.api.android.lib6.gmm6.indoor.o.c(:com.google.android.gms.dynamite_dynamitemodulesb@12685025@12.6.85 (040408-197041431):193)

Fatal Exception: java.lang.StackOverflowError: stack size 8MB
    at java.util.HashMap.get(HashMap.java:556)
    at com.google.maps.api.android.lib6.gmm6.util.e.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685025@12.6.85 (040408-197041431):7)
    at com.google.maps.api.android.lib6.gmm6.indoor.o.c(:com.google.android.gms.dynamite_dynamitemodulesb@12685025@12.6.85 (040408-197041431):193)

Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
    at java.util.ArrayList.<init>(ArrayList.java:191)
    at com.google.maps.api.android.lib6.common.i.<init>(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):9)
    at com.google.maps.api.android.lib6.gmm6.indoor.o.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):159)
    at com.google.maps.api.android.lib6.gmm6.indoor.o.c(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):161)

Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
    at com.google.maps.api.android.lib6.gmm6.util.e.a(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):5)
    at com.google.maps.api.android.lib6.gmm6.util.e.d(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):33)

Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
       at com.google.maps.api.android.lib6.common.i.<init>(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):9)
       at com.google.maps.api.android.lib6.gmm6.indoor.o.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):159)

Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
      at java.util.HashMap.putVal(HashMap.java:630)
      at java.util.HashMap.put(HashMap.java:611)
      at com.google.maps.api.android.lib6.gmm6.util.e.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):17)
      at com.google.maps.api.android.lib6.gmm6.indoor.o.c(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):193)

Fatal Exception: java.lang.StackOverflowError: stack size 1037KB
     at java.util.HashMap.remove(HashMap.java:798)
     at com.google.maps.api.android.lib6.gmm6.util.e.d(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):29)
     at com.google.maps.api.android.lib6.gmm6.util.e.a(:com.google.android.gms.dynamite_dynamitemodulesb@12685023@12.6.85 (040400-197041431):37)

Fatal Exception: java.lang.StackOverflowError: stack size 1036KB
    at java.util.HashMap.get(HashMap.java:300)
    at com.google.maps.api.android.lib6.gmm6.util.e.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685009@12.6.85 (020308-197041431):20)
    at com.google.maps.api.android.lib6.gmm6.store.cache.s.a(:com.google.android.gms.dynamite_dynamitemodulesb@12685009@12.6.85 (020308-197041431):8)

Fatal Exception: java.lang.StackOverflowError: stack size 1038KB
       at java.util.ArrayList.toArray(ArrayList.java:364)
       at java.util.ArrayList.<init>(ArrayList.java:171)
       at com.google.maps.api.android.lib6.common.i.<init>(:com.google.android.gms.dynamite_dynamitemodulesb@12685021@12.6.85 (040306-197041431):9)
       at com.google.maps.api.android.lib6.gmm6.indoor.o.b(:com.google.android.gms.dynamite_dynamitemodulesb@12685021@12.6.85 (040306-197041431):159)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-05 09:59:46

在尝试了多种方法后,如果您不需要室内映射,下面是一个对我有效的解决方法。

代码语言:javascript
复制
// Kotlin
googleMap.isIndoorEnabled = false

// Java
googleMap.setIndoorEnabled(false);

我看到的所有崩溃都与室内软件包有关,所以这是有意义的。希望很快就能发布修复程序。如果issue on AOSP tracker已解决,将发布。

更新

好消息。谷歌在2018年10月20日将该漏洞标记为已修复。Google Play服务中最新的地图Android SDK的发行说明中也提到了这一点

https://developers.google.com/maps/documentation/android-sdk/releases#october_18_2018

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50691006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档