在我的制作应用中看到与Google Maps v2相关的多次崩溃,每天数百次。
我甚至可以在Lyft,Yelp,Ritual应用程序上重复这个问题。
Repro Steps
预期
实际
作为一个聚合,崩溃击中了多个操作系统:5,6,7,8。单独地,我看到的崩溃目标是1-2 OS的最大值,例如5 + 6,7,7 + 8。
堆栈跟踪似乎都涉及com.google.maps.api.android.lib6.gmm6.indoor.*
个包。
这是我在AOSP Issue Tracker上看到的最接近的问题。有关不同堆栈跟踪的类似问题,请查看该问题的重复项。
以下是我看到的一些堆栈跟踪的片段(还有很多):
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)
答案 0 :(得分:18)
尝试多项操作后,如果您不需要室内映射,以下是适用于我的解决方法。
// Kotlin
googleMap.isIndoorEnabled = false
// Java
googleMap.setIndoorEnabled(false);
我看到的所有碰撞都与室内包装有关,所以这是有道理的。希望很快就会发布修复程序。如果issue on AOSP tracker已解决,将发布。
好消息。 Google于2018年10月20日将该错误标记为已修复。此外,Google Play服务中最新版Google地图Android SDK的发行说明中也提到了
https://developers.google.com/maps/documentation/android-sdk/releases#october_18_2018