Status Update
Comments
[Deleted User] <[Deleted User]> #2
Hello, thanks for reporting.
I can reproduce this issue by targeting SDK 35 and running the test on an emulator running Android 35.
I couldn't reproduce in a test that detects that content is occluded though. Both isDisplayed()
and !isNotDisplayed()
still return true, which seems to be caused by a bug in View.getGlobalVisibleRect
, which doesn't take the action bar into account either and which we rely on to get the clipped bounds of the AbstractComposeView.
I also couldn't reproduce with a View only test using Espresso and the following assertion: Espresso.onView(withText("Hello World")).check(matches(isCompletelyDisplayed()))
. Espresso also seems to rely on View.getGlobalVisibleRect
(
ig...@gmail.com <ig...@gmail.com> #3
Thank you for addressing this issue. I believe verifying the visibility and clickability of UI components is crucial for both UI and AI agent tests. Therefore, I think it's worth filing an issue to address this. Currently, I can achieve this through touch events, but it's not an ideal solution.
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@get:Rule
val composeTestRule = createComposeRule()
@Test
fun useAppContext() {
composeTestRule.setContent {
Column {
var isClicked by remember { mutableStateOf(false) }
// You can click the Button with this text
// Text("Hello\n\n\n\n\n\n\n\n\n\n World, $isClicked")
Button(onClick = { isClicked = true }) {
Text("Click me $isClicked")
}
}
}
val rect = composeTestRule.onNode(hasText("Click me false")).getBoundsInRoot()
val activity = (composeTestRule as AndroidComposeTestRule<*, *>).activity
val metrics = activity.windowManager.currentWindowMetrics
val density = metrics.density
println("density: $density $rect")
val x = (rect.left.value + rect.width.value / 2F) * density
val y = (rect.top.value + rect.height.value / 2F) * density
println("x: $x, y: $y")
activity.runOnUiThread {
activity.window.decorView.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, x, y, 0))
activity.window.decorView.dispatchTouchEvent(MotionEvent.obtain(0, 0, MotionEvent.ACTION_UP, x, y, 0))
}
composeTestRule.onNode(hasText("Click me true")).assertIsDisplayed()
}
}
[Deleted User] <[Deleted User]> #4
Clicks sent with the input injection methods (performClick
, performTouchInput
, etc) are not affected by the occlusion because we're essentially doing the same as in your workaround; we send the MotionEvents directly to the View that's hosting the compose content. You should be able to replace your custom injection logic with composeTestRule.onNode(hasText("Click me false")).performClick()
. If that doesn't pass, can you try the following test?
@Test
fun clickUnderActionBar() {
var clicked = false
composeTestRule.setContent {
Button(onClick = { clicked = true }) { Text("Click me") }
}
composeTestRule.onNodeWithText("Click me").performClick()
composeTestRule.runOnIdle { assert(clicked) { "Box was not clicked" } }
}
le...@gmail.com <le...@gmail.com> #5
Thank you for your continued work on this issue and the information about performClick()
.
I confirmed that both composeTestRule.onNode(hasText("Click me false")).performClick()
and the clickUnderActionBar()
test work as expected.
My aim was to provide a reproducing test case that demonstrates user clicks are unable to reach components as expected when they are overlaid by the ActionBar.
I'm very positive about the current direction of applying the appropriate theme, and I believe this approach will effectively resolve the underlying issue.
Thank you again for your efforts.
se...@gmail.com <se...@gmail.com> #6
Project: platform/frameworks/support
Branch: androidx-main
Author: Jelle Fresen <
Link:
Use NoActionBar theme for default test activity
Expand for full commit details
Use NoActionBar theme for default test activity
When targeting SDK 35, an activity is edge-to-edge by default. The
default theme has an ActionBar, which is now overlapping with the UI.
Fix this by setting a NoActionBar theme to remove the ActionBar. This
should not be a problem for existing tests, as the intended usecase for
using the ComponentActivity as a compose host is to test composables in
isolation.
Also changes the inappropriately named ActivityWithActionBar we use for
internal testing with the more appropriate name
CustomComposeHostActivity, as it had nothing to do with having an action
bar or not.
Bug: 383368165
Test: Added regression test in ComponentActivityLaunchesTest
Relnote: "The activity that is used as the host for the composable under
test when using `ComposeContentTestRule.setContent` now uses the theme
`Theme.Material.Light.NoActionBar`, to avoid the ActionBar from
overlapping with test content when targeting SDK 35. To opt out of this
behavior, you can remove the dependency on `ui-test-manifest` and add an
activity entry in your test app's AndroidManifest.xml for
ComponentActivity with the theme of your choice."
Change-Id: I7ae1bd28f5e341dafc07442b35ee4249793d257d
Files:
- M
compose/material/material-navigation/build.gradle
- M
compose/ui/ui-test-manifest/integration-tests/testapp/build.gradle
- M
compose/ui/ui-test-manifest/integration-tests/testapp/src/androidTest/java/androidx/compose/ui/test/manifest/integration/testapp/ComponentActivityLaunchesTest.kt
- M
compose/ui/ui-test-manifest/src/main/AndroidManifest.xml
- M
compose/ui/ui-test/src/androidInstrumentedTest/AndroidManifest.xml
- M
compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/BitmapCapturingTest.kt
- M
compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/CustomComposeHostActivity.kt
- M
compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/IsDisplayedTest.kt
- M
compose/ui/ui-test/src/androidInstrumentedTest/kotlin/androidx/compose/ui/test/gesturescope/SendClickTest.kt
- M
constraintlayout/constraintlayout-compose/build.gradle
Hash: 18d7693b4eba2ec6b1d1162b2154e914ba6ef25d
Date: Mon Dec 16 20:31:21 2024
[Deleted User] <[Deleted User]> #7
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.material:material-navigation:1.8.0-alpha08
androidx.compose.ui:ui-test:1.8.0-alpha08
androidx.compose.ui:ui-test-android:1.8.0-alpha08
androidx.compose.ui:ui-test-jvmstubs:1.8.0-alpha08
androidx.compose.ui:ui-test-linuxx64stubs:1.8.0-alpha08
androidx.compose.ui:ui-test-manifest:1.8.0-alpha08
ga...@seeclickfix.com <ga...@seeclickfix.com> #8
ad...@gmail.com <ad...@gmail.com> #9
da...@gmail.com <da...@gmail.com> #10
Same crash here, our app is completely down too.
va...@gmail.com <va...@gmail.com> #11
[Deleted User] <[Deleted User]> #12
cl...@kinandcarta.com <cl...@kinandcarta.com> #13
za...@gmail.com <za...@gmail.com> #14
Please update Priority to P0 and flag In Prod to true since it is.
te...@gmail.com <te...@gmail.com> #15
ni...@dedaldev.com <ni...@dedaldev.com> #16
in...@pixelcrater.com <in...@pixelcrater.com> #17
[Deleted User] <[Deleted User]> #18
mk...@gmail.com <mk...@gmail.com> #19
ga...@seeclickfix.com <ga...@seeclickfix.com> #20
br...@gmail.com <br...@gmail.com> #21
ge...@gmail.com <ge...@gmail.com> #22
mr...@gmail.com <mr...@gmail.com> #23
se...@gmail.com <se...@gmail.com> #24
la...@laerciokonzen.com.br <la...@laerciokonzen.com.br> #25
cp...@gmail.com <cp...@gmail.com> #26
mk...@umbella.net <mk...@umbella.net> #27
first start all fine, app and map is working. then second start, app is crashing.
seems on first start (after the issue appears) maps sdk gets wrong "config" etc.
ge...@gmail.com <ge...@gmail.com> #28
ji...@gmail.com <ji...@gmail.com> #29
ra...@gmail.com <ra...@gmail.com> #30
2020-04-23 17:19:38.953 5507-5572/cl.vigatec.contratistasmobile E/AndroidRuntime: FATAL EXCEPTION: androidmapsapi-ZoomTableManager
Process: cl.vigatec.contratistasmobile, PID: 5507
java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.dg.<init>(:com.google.android.gms.dynamite_mapsdynamite@16089052@16.0.89 (040700-239467275):21)
at com.google.maps.api.android.lib6.gmm6.vector.dh.a(:com.google.android.gms.dynamite_mapsdynamite@16089052@16.0.89 (040700-239467275):11)
at com.google.maps.api.android.lib6.gmm6.util.n.run(:com.google.android.gms.dynamite_mapsdynamite@16089052@16.0.89 (040700-239467275):27)
at java.lang.Thread.run(Thread.java:764)
da...@gmail.com <da...@gmail.com> #31
fb...@gmail.com <fb...@gmail.com> #32
rb...@gmail.com <rb...@gmail.com> #33
kd...@gmail.com <kd...@gmail.com> #34
sh...@gmail.com <sh...@gmail.com> #35
[Deleted User] <[Deleted User]> #36
in...@manconsulting.co.uk <in...@manconsulting.co.uk> #37
ya...@gmail.com <ya...@gmail.com> #38
br...@gmail.com <br...@gmail.com> #39
da...@gmail.com <da...@gmail.com> #40
sc...@skipscooters.com <sc...@skipscooters.com> #41
We will provide an update by Thursday, 2020-04-23 14:30 US/Pacific with current details.
Any update yet? It seems to crash on a per-app basis - an app can be opened once and the map will render without crashing, but if you close the activity and come back it starts crashing immediately. You can then try another app where you'll get the same behavior - the first time it seems to work ok, but then starts crashing when you reload.
fe...@gmail.com <fe...@gmail.com> #42
mu...@gmail.com <mu...@gmail.com> #43
al...@gmail.com <al...@gmail.com> #44
sp...@gmail.com <sp...@gmail.com> #45
[Deleted User] <[Deleted User]> #46
ma...@gmail.com <ma...@gmail.com> #47
kd...@gmail.com <kd...@gmail.com> #48
je...@gmail.com <je...@gmail.com> #49
si...@vromo.io <si...@vromo.io> #50
[Deleted User] <[Deleted User]> #51
na...@gmail.com <na...@gmail.com> #52
ia...@gmail.com <ia...@gmail.com> #53
jz...@gmail.com <jz...@gmail.com> #54
[Deleted User] <[Deleted User]> #55
ks...@tenna.com <ks...@tenna.com> #56
na...@gmail.com <na...@gmail.com> #57
ah...@google.com <ah...@google.com> #58
da...@byyuto.com <da...@byyuto.com> #59
da...@gmail.com <da...@gmail.com> #60
al...@gmail.com <al...@gmail.com> #61
===== Error =====
Date and time=23/04/2020 16:15:30
Message=length=1; index=12
Java stack=com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216067@20.12.16 (100408-0):9)
com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216067@20.12.16 (100408-0):23)
com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216067@20.12.16 (100408-0):14)
java.lang.Thread.run(Thread.java:784)
Thread=id=468
name=androidmapsapi-ZoomTableManager
priority=5
groupName=main
===== Device =====
Model=MAR-LX3A
Constructor=HUAWEI
Make=HUAWEI
jo...@gmail.com <jo...@gmail.com> #62
pj...@gmail.com <pj...@gmail.com> #63
[Deleted User] <[Deleted User]> #64
[Deleted User] <[Deleted User]> #65
Any New ETA?
al...@asap507.com <al...@asap507.com> #66
[Deleted User] <[Deleted User]> #67
va...@gmail.com <va...@gmail.com> #68
Waiting for ETA....
ma...@gmail.com <ma...@gmail.com> #69
va...@gmail.com <va...@gmail.com> #70
om...@gmail.com <om...@gmail.com> #71
ra...@gmail.com <ra...@gmail.com> #72
ri...@gmail.com <ri...@gmail.com> #73
ss...@nuvizz.com <ss...@nuvizz.com> #74
[Deleted User] <[Deleted User]> #75
jv...@telynet.com <jv...@telynet.com> #77
hj...@gmail.com <hj...@gmail.com> #78
te...@gmail.com <te...@gmail.com> #79
61...@gmail.com <61...@gmail.com> #80
Dealing with a lot of angry users right now!
th...@gmail.com <th...@gmail.com> #81
We have the same problem. We need the solution!
an...@gmail.com <an...@gmail.com> #82
mo...@gmail.com <mo...@gmail.com> #83
ja...@free-now.com <ja...@free-now.com> #84
ol...@tallium.com <ol...@tallium.com> #85
[Deleted User] <[Deleted User]> #86
E/AndroidRuntime: FATAL EXCEPTION: androidmapsapi-ZoomTableManager
Process:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):14)
at java.lang.Thread.run(Thread.java:764)
We don't have many users and are in beta, however, I almost got a stroke after seeing this happening though. Frantically searched the whole code, reverted back a couple of times, tried emulator, 2 phones, apparently only debug crashing while maps woks on my friends phone with a previous version?!? Same behavior as others, starts normal, everything works, then go to another activity, come back and boom, crash, this weird error is everything that comes up instead of, don't worry it's not your fault, our latest update might have cause the issue. Chill, relax and take a break while we fix this. That would of been a nice message in Android Studio and on the phones so that users will know too, instead of crashing the app even though try/catch is used and this cryptic message cited above. Hope you guys fix it soon, just revert back. Whoever did this should never work in tech ever again.
da...@gmail.com <da...@gmail.com> #87
jm...@gmail.com <jm...@gmail.com> #88
ss...@nuvizz.com <ss...@nuvizz.com> #89
As per your last update you were supposed to be providing an update at 14:30 US
---We will provide an update by Thursday, 2020-04-23 14:30 US/Pacific with current details.
lu...@justeattakeaway.com <lu...@justeattakeaway.com> #90
al...@gmail.com <al...@gmail.com> #91
to...@gmail.com <to...@gmail.com> #92
va...@gmail.com <va...@gmail.com> #93
tc...@gmail.com <tc...@gmail.com> #94
Skynet has fallen. It's time to find alternative SDKs or create proprietary APIs. We shouldn't have to rely on one company to support hundreds of thousands of businesses.
This^^^
ap...@gmail.com <ap...@gmail.com> #95
jv...@telynet.com <jv...@telynet.com> #96
da...@gmail.com <da...@gmail.com> #97
ob...@mrsool.co <ob...@mrsool.co> #98
le...@gmail.com <le...@gmail.com> #99
bw...@gmail.com <bw...@gmail.com> #100
er...@gmail.com <er...@gmail.com> #101
ra...@gmail.com <ra...@gmail.com> #102
no...@gmail.com <no...@gmail.com> #103
ma...@gmail.com <ma...@gmail.com> #104
re...@gmail.com <re...@gmail.com> #105
ya...@gmail.com <ya...@gmail.com> #106
LoL, crash :com.google.android.gms.dynamite_mapsdynamit
Realy DYNAMITE! )
su...@gmail.com <su...@gmail.com> #107
wa...@gmail.com <wa...@gmail.com> #108
ar...@gmail.com <ar...@gmail.com> #109
[Deleted User] <[Deleted User]> #110
pa...@gmail.com <pa...@gmail.com> #111
04-24 00:33:25.614 12731 12934 E com.marianhello.logging.UncaughtExceptionLogger: FATAL EXCEPTION: androidmapsapi-ZoomTableManagerjava.lang.ArrayIndexOutOfBoundsException: length=1; index=12
04-24 00:33:25.614 12731 12934 E com.marianhello.logging.UncaughtExceptionLogger: at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@200914067@20.09.14 (100408-0):9)
04-24 00:33:25.614 12731 12934 E com.marianhello.logging.UncaughtExceptionLogger: at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@200914067@20.09.14 (100408-0):23)
04-24 00:33:25.614 12731 12934 E com.marianhello.logging.UncaughtExceptionLogger: at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@200914067@20.09.14 (100408-0):14)
04-24 00:33:25.614 12731 12934 E com.marianhello.logging.UncaughtExceptionLogger: at java.lang.Thread.run(Thread.java:764)
04-24 00:33:25.622 1886 3698 W ActivityManager: Force finishing activity com.mbox_mobile/.MainActivity
re...@gambyt.com <re...@gambyt.com> #112
ma...@encompass8.com <ma...@encompass8.com> #113
ms...@gmail.com <ms...@gmail.com> #114
mc...@gmail.com <mc...@gmail.com> #115
av...@google.com <av...@google.com> #116
Mitigation work is currently underway by our engineering team; roll-out of a potential fix is in-progress.
We will provide more information by Thursday, 2020-04-23 16:30 US/Pacific.
gp...@gmail.com <gp...@gmail.com> #117
ca...@gmail.com <ca...@gmail.com> #118
pa...@gmail.com <pa...@gmail.com> #119
[Deleted User] <[Deleted User]> #120
/**
* Allocates a new {@code Thread} object so that it has {@code target}
* as its run object, has the specified {@code name} as its name,
* and belongs to the thread group referred to by {@code group}.
*
* <p>If there is a security manager, its
* {@link SecurityManager#checkAccess(ThreadGroup) checkAccess}
* method is invoked with the ThreadGroup as its argument.
*
* <p>In addition, its {@code checkPermission} method is invoked with
* the {@code RuntimePermission("enableContextClassLoaderOverride")}
* permission when invoked directly or indirectly by the constructor
* of a subclass which overrides the {@code getContextClassLoader}
* or {@code setContextClassLoader} methods.
*
* <p>The priority of the newly created thread is set equal to the
* priority of the thread creating it, that is, the currently running
* thread. The method {@linkplain #setPriority setPriority} may be
* used to change the priority to a new value.
*
* <p>The newly created thread is initially marked as being a daemon
* thread if and only if the thread creating it is currently marked
* as a daemon thread. The method {@linkplain #setDaemon setDaemon}
* may be used to change whether or not a thread is a daemon.
*
* @param group
* the thread group. If {@code null} and there is a security
* manager, the group is determined by {@linkplain
* SecurityManager#getThreadGroup SecurityManager.getThreadGroup()}.
* If there is not a security manager or {@code
* SecurityManager.getThreadGroup()} returns {@code null}, the group
* is set to the current thread's thread group.
*
* @param target
* the object whose {@code run} method is invoked when this thread
* is started. If {@code null}, this thread's run method is invoked.
*
* @param name
* the name of the new thread
*
* @throws SecurityException <--------------------- Line 754
* if the current thread cannot create a thread in the specified
* thread group or cannot override the context class loader methods.
*/
public Thread(ThreadGroup group, Runnable target, String name) {
init(group, target, name, 0);
}
Line 754 calls
/*
* Copyright (c) 1995, 2003, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit
* questions.
*/
package java.lang;
/**
* Thrown by the security manager to indicate a security violation.
*
* @author unascribed
* @see java.lang.SecurityManager
* @since JDK1.0
*/
public class SecurityException extends RuntimeException {
private static final long serialVersionUID = 6878364983674394167L;
/**
* Constructs a <code>SecurityException</code> with no detail message.
*/
public SecurityException() {
super();
}
/**
* Constructs a <code>SecurityException</code> with the specified
* detail message.
*
* @param s the detail message.
*/
public SecurityException(String s) {
super(s);
}
/**
* Creates a <code>SecurityException</code> with the specified
* detail message and cause.
*
* @param message the detail message (which is saved for later retrieval
* by the {@link #getMessage()} method).
* @param cause the cause (which is saved for later retrieval by the
* {@link #getCause()} method). (A <tt>null</tt> value is permitted,
* and indicates that the cause is nonexistent or unknown.)
* @since 1.5
*/
public SecurityException(String message, Throwable cause) {
super(message, cause);
}
/**
* Creates a <code>SecurityException</code> with the specified cause
* and a detail message of <tt>(cause==null ? null : cause.toString())</tt>
* (which typically contains the class and detail message of
* <tt>cause</tt>).
*
* @param cause the cause (which is saved for later retrieval by the
* {@link #getCause()} method). (A <tt>null</tt> value is permitted,
* and indicates that the cause is nonexistent or unknown.)
* @since 1.5
*/
public SecurityException(Throwable cause) {
super(cause);
}
}
[Deleted User] <[Deleted User]> #121
foletto is pistola.
fr...@gmail.com <fr...@gmail.com> #122
al...@gmail.com <al...@gmail.com> #123
ar...@gmail.com <ar...@gmail.com> #124
ce...@pintraveler.net <ce...@pintraveler.net> #125
jm...@conductivedigital.com <jm...@conductivedigital.com> #126
[Deleted User] <[Deleted User]> #127
er...@gmail.com <er...@gmail.com> #128
[Deleted User] <[Deleted User]> #129
On a side note, this Issue Tracker sucks. How do we know who is an official poster? How can I get official email updates but not thousands of others?
sa...@gmail.com <sa...@gmail.com> #130
ti...@gmail.com <ti...@gmail.com> #131
an...@gmail.com <an...@gmail.com> #132
dc...@uber.com <dc...@uber.com> #133
to...@gmail.com <to...@gmail.com> #134
is anyone working on android ?
sc...@skipscooters.com <sc...@skipscooters.com> #135
Clearing storage for an app that is crashing resolves the issue now and it doesn't seem to come back. Likely some bad data was being sent down and cached, causing the immediate crashes on the next load. Going to be tricky to get users to clear their app data (which in many cases also means they'll get signed out if app credentials are in private storage) to get them out of the crash loops...
[Deleted User] <[Deleted User]> #136
E/AndroidRuntime: FATAL EXCEPTION: androidmapsapi-ZoomTableManager
Process:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):14)
at java.lang.Thread.run(Thread.java:764)
op...@inbursa.com <op...@inbursa.com> #137
to...@gmail.com <to...@gmail.com> #138
de...@gmail.com <de...@gmail.com> #139
de...@gmail.com <de...@gmail.com> #141
jg...@gmail.com <jg...@gmail.com> #142
java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216046@20.12.16 (040306-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216046@20.12.16 (040306-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216046@20.12.16 (040306-0):14)
pa...@gmail.com <pa...@gmail.com> #143
[Deleted User] <[Deleted User]> #144
ap...@gmail.com <ap...@gmail.com> #145
[Deleted User] <[Deleted User]> #146
dd...@onfleet.com <dd...@onfleet.com> #147
so...@creeden.com <so...@creeden.com> #148
ic...@googlemail.com <ic...@googlemail.com> #149
[Deleted User] <[Deleted User]> #150
da...@gmail.com <da...@gmail.com> #151
Clearing the data and reopening the app fix the issue, BUT every user that already experienced the issue is not going to clear the data and reopen, they are going to uninstall our app!!
pi...@gmail.com <pi...@gmail.com> #152
Uninstall and install again your app.
in...@manconsulting.co.uk <in...@manconsulting.co.uk> #153
ol...@gmail.com <ol...@gmail.com> #154
ya...@gmail.com <ya...@gmail.com> #155
3 hours of global problem and still no answer from google, no any reaction
ck...@gmail.com <ck...@gmail.com> #156
ia...@gmail.com <ia...@gmail.com> #157
ro...@gmail.com <ro...@gmail.com> #158
su...@gmail.com <su...@gmail.com> #159
fe...@gmail.com <fe...@gmail.com> #160
ic...@googlemail.com <ic...@googlemail.com> #161
[Deleted User] <[Deleted User]> #162
[Deleted User] <[Deleted User]> #163
ra...@gmail.com <ra...@gmail.com> #164
sa...@gmail.com <sa...@gmail.com> #165
[Deleted User] <[Deleted User]> #166
[Deleted User] <[Deleted User]> #167
Pls fix this 😭
vi...@tupronto.mx <vi...@tupronto.mx> #168
dr...@gmail.com <dr...@gmail.com> #169
tr...@bryx.com <tr...@bryx.com> #170
pe...@encalient.es <pe...@encalient.es> #171
[Deleted User] <[Deleted User]> #172
in...@gmail.com <in...@gmail.com> #173
[Deleted User] <[Deleted User]> #174
ch...@gmail.com <ch...@gmail.com> #175
aa...@fitbit.com <aa...@fitbit.com> #176
Seems to clear up the issue without clearing data. Annoying to have to push an app update though.
jo...@gmail.com <jo...@gmail.com> #177
cp...@gmail.com <cp...@gmail.com> #178
al...@gmail.com <al...@gmail.com> #179
SharedPreferences googleBug = getSharedPreferences("google_bug", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
ki...@gmail.com <ki...@gmail.com> #180
ah...@google.com <ah...@google.com> #181
Customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache). If there is uncertainty about the safety of clearing application data, users can wait for new data to be fetched within the next 3 hours (many users will see resolution of the problem sooner than this).
We will provide an update by Thursday, 2020-04-23 16:53 US/Pacific with current details.
gv...@gmail.com <gv...@gmail.com> #182
STACKTRACE:
com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216050@20.12.16 (040406-0):9)
com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216050@20.12.16 (040406-0):23)
com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216050@20.12.16 (040406-0):14)
java.lang.Thread.run(Thread.java:764)
[Deleted User] <[Deleted User]> #183
SharedPreferences googleBug = getSharedPreferences("google_bug", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
And we should just leave that in the onCreate of the app for the next how many weeks, months, years? What if we have multiple activities? Should we put that in every activity? Those instructions are really vague. Also, if the problem is solved, why put that in the app?
jo...@gmail.com <jo...@gmail.com> #184
jo...@gmail.com <jo...@gmail.com> #185
gv...@gmail.com <gv...@gmail.com> #186
The problem has now been resolved by clearing the application data
le...@gmail.com <le...@gmail.com> #187
fa...@dr.com.br <fa...@dr.com.br> #188
At least the customers don't have to clear caches as soon as the app updates.
en...@google.com <en...@google.com> #189
Description: We believe the crashes of Google Maps SDK are continuing toward resolution at the expected pace. Full resolution is expected to complete by Thursday, 2020-04-23 19:45 US/Pacific.
Customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache). If there is uncertainty about the safety of clearing application data, users can wait for new data to be fetched within the next 3 hours (many users will see resolution of the problem sooner than this).
We will provide an update by Thursday, 2020-04-23 18:09 US/Pacific with current details.
Workaround: Clear application data (not just the cache).
le...@gmail.com <le...@gmail.com> #190
mi...@google.com <mi...@google.com>
an...@gmail.com <an...@gmail.com> #191
da...@gmail.com <da...@gmail.com> #192
[Deleted User] <[Deleted User]> #193
ja...@gmail.com <ja...@gmail.com> #194
ch...@gmail.com <ch...@gmail.com> #195
[Deleted User] <[Deleted User]> #196
th...@gmail.com <th...@gmail.com> #197
wi...@isheepdog.com <wi...@isheepdog.com> #198
hm...@misemise.co.kr <hm...@misemise.co.kr> #199
I'm afraid the user will put the app into sleep mode due to a crash.
tc...@gmail.com <tc...@gmail.com> #200
en...@google.com <en...@google.com> #201
Description: We believe the root cause of the crashes of Google Maps SDK has been fixed. The fix is being propagated to the affected applications and it is continuing toward resolution at the expected pace. Full resolution is expected to complete by Thursday, 2020-04-23 19:45 US/Pacific.
Customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache). If there is uncertainty about the safety of clearing application data, users can wait for new data to be fetched within 3 hours (many users will see resolution of the problem sooner than this).
We will provide an update by Thursday, 2020-04-23 19:30 US/Pacific with current details.
Workaround: Clear application data (not just the cache).
dg...@gmail.com <dg...@gmail.com> #202
Any suggestion?
la...@gmail.com <la...@gmail.com> #203
ra...@gmail.com <ra...@gmail.com> #204
aa...@fitbit.com <aa...@fitbit.com> #205
al...@olo.com <al...@olo.com> #206
ju...@olo.com <ju...@olo.com> #207
al...@olo.com <al...@olo.com> #208
ma...@glovoapp.com <ma...@glovoapp.com> #209
Hi, is there any update? We're considering re-enabling our services and would like to know if there's anything to keep in mind during this phase.
Thanks.
ze...@gmail.com <ze...@gmail.com> #210
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
length=1; index=12
Brand: samsung
Model: Galaxy S9
Orientation: Portrait
RAM free: 1.35 GB
Disk free: 22.65 GB
Crash Date: Apr 24, 2020, 3:36:00 AM
Log in live app : found in FIREBASE Crashlytics:
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@200914083@20.09.14 (120408-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@200914083@20.09.14 (120408-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@200914083@20.09.14 (120408-0):14)
at java.lang.Thread.run(Thread.java:919)
Device
Brand: LGE
Model: V30
Orientation: Portrait
RAM free: 823 MB
Disk free: 4.79 GB
Crash Date: Apr 24, 2020, 3:36:00 AM
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216065@20.12.16 (100400-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216065@20.12.16 (100400-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216065@20.12.16 (100400-0):14)
at java.lang.Thread.run(Thread.java:764)
li...@gmail.com <li...@gmail.com> #211
java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216067@20.12.16 (100408-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216067@20.12.16 (100408-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216067@20.12.16 (100408-0):14)
at java.lang.Thread.run(Thread.java:764)
Back traces end.
of...@nerpc.com <of...@nerpc.com> #212
ap...@gmail.com <ap...@gmail.com> #213
in...@ihunterapp.com <in...@ihunterapp.com> #214
en...@google.com <en...@google.com> #215
Description: We believe the root cause of the crashes of Google Maps SDK has been fixed. The fix is being propagated to the affected applications and it is continuing toward resolution at the expected pace.
As for Maps SDK for iOS, full resolution was expected to complete by Thursday, 2020-04-23 19:45 PDT.
As for Maps SDK for Android, full resolution is expected to complete by Thursday, 2020-04-23 22:45 PDT.
Customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache). If there is uncertainty about the safety of clearing application data, users can wait for new data to be fetched within 3 hours for Maps SDK for iOS, within 6 hours for Maps SDK for Android (many users will see resolution of the problem sooner than this).
We will provide an update by Thursday, 2020-04-23 20:45 US/Pacific with current details.
Workaround: Clear application data (not just the cache).
kr...@gmail.com <kr...@gmail.com> #216
ma...@gmail.com <ma...@gmail.com> #217
di...@gmail.com <di...@gmail.com> #218
bb...@gmail.com <bb...@gmail.com> #219
al...@gmail.com <al...@gmail.com> #220
AFAIK only way to fix it on devices and apps that have already fetched the broken data, is to delete ZoomTables.data. All apps need to be updated to fix this on USERS ALREADY experiencing this. I cannot believe the engineering team does not realise this!
na...@gmail.com <na...@gmail.com> #221
lj...@gmail.com <lj...@gmail.com> #222
tc...@gmail.com <tc...@gmail.com> #223
"We will provide an update by Thursday, 2020-04-23 20:45 US/Pacific with current details." 20:45 = 8:45 PST = 10:45 CST. 10:45 PST is for the actual fix to be implemented.
Unrelated note: This IssueTracker format is bad. I have no idea who the verified Google users are. I could just copy the format and make it look like I'm the Google verified user and make up whatever I wanted. Just food for thought.
ro...@favordelivery.com <ro...@favordelivery.com> #224
bb...@gmail.com <bb...@gmail.com> #225
en...@google.com <en...@google.com> #226
Description: We believe the root cause of the crashes of Google Maps SDK has been fixed. The fix is being propagated to the affected applications and it is continuing toward resolution at the expected pace.
Please note that even after full resolution, the first launch of an application might still trigger a crash. However, all following launches should start working as expected.
As for Maps SDK for iOS, full resolution was expected to complete by Thursday, 2020-04-23 19:45 PDT.
As for Maps SDK for Android, full resolution is expected to complete by Thursday, 2020-04-23 22:45 PDT.
Additionally for Maps SDK for Android, customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache), to speed up recovery. If there is uncertainty about the safety of clearing application data, users can wait for new data to be fetched after full resolution. The full resolution ETA includes cache expiration time for data affected by the issue.
We will provide an update by Thursday, 2020-04-23 22:15 US/Pacific with current details.
Workaround: Clear application data (not just the cache).
sa...@gmail.com <sa...@gmail.com> #227
A new news of the problem?
sm...@gmail.com <sm...@gmail.com> #228
Affected all apps !!
Google fix this please.
We can not tell users to clear cache and data, or reinstall app.
sc...@skipscooters.com <sc...@skipscooters.com> #229
Can anyone confirm if they've seen the cache expire and apps start working again without clearing app data? ("within 6 hours for Maps SDK for Android (many users will see resolution of the problem sooner than this)")
So far none of the apps I've been testing have recovered on their own.
en...@google.com <en...@google.com> #230
Description: We believe the crashes in the Google Maps SDKs should be fixed for iOS, but Android users might still see some crashes.
Please note that even after full resolution, the first launch of an application might still trigger a crash. Restarting the application once more should fix the issue.
The fix was successfully rolled out server-side by Thursday, 2020-04-23 15:22 PDT.
However, the Maps SDKs for iOS and Android will continue crashing until they get the fixed data from Google's servers.
For Maps SDK for iOS, when taking into account Maps SDK data cache expiration, full resolution should have completed by Thursday, 2020-04-23 19:45 PDT at the latest. Please let us know if your users still see crashes, even after multiple application restarts.
For Maps SDK for Android, the full resolution is expected to be reached by Thursday, 2020-04-23 22:45 PDT at the latest.
Maps SDK for Android customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache), to speed up recovery. If there is uncertainty about the safety of clearing application data, users can wait for new data to be fetched after full resolution.
We will provide an update by Thursday, 2020-04-23 23:00 US/Pacific with current details.
Workaround: Clear application data (not just the cache).
al...@gmail.com <al...@gmail.com> #231
ch...@gmail.com <ch...@gmail.com> #232
SharedPreferences googleBug = getSharedPreferences("google_bug", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
in Application.onCreate():
al...@gmail.com <al...@gmail.com> #233
rb...@google.com <rb...@google.com> #234
If you still get crashes in you applications, could you give us the following information?
- in which region are those crashes happening?
- do the crashes come from iOS? Android? Both?
ia...@gmail.com <ia...@gmail.com> #235
ja...@gmail.com <ja...@gmail.com> #236
al...@gmail.com <al...@gmail.com> #237
Region: Finland, Platform: Android .
ia...@lyft.com <ia...@lyft.com> #238
ch...@gmail.com <ch...@gmail.com> #239
lo...@gmail.com <lo...@gmail.com> #240
[Deleted User] <[Deleted User]> #241
yo...@gmail.com <yo...@gmail.com> #242
ch...@gmail.com <ch...@gmail.com> #243
wa...@weedmaps.com <wa...@weedmaps.com> #244
[Deleted User] <[Deleted User]> #245
ju...@gmail.com <ju...@gmail.com> #246
- Crashes are coming from Android.
ja...@gmail.com <ja...@gmail.com> #247
cp...@gmail.com <cp...@gmail.com> #248
This app is only for android.
ro...@favordelivery.com <ro...@favordelivery.com> #249
bb...@gmail.com <bb...@gmail.com> #250
ar...@gmail.com <ar...@gmail.com> #251
Apps that crashed - android.
Latest crash on ios - 8:08 +03:00
pr...@gmail.com <pr...@gmail.com> #252
Apps that crashes: Android
Affected users increasing in a slow rate looking at Crashlytics data. (218 one our ago, since first arising. Affecting 228 users now)
[Deleted User] <[Deleted User]> #253
Android apps are still crashing.
Last crash : Just now
vm...@gmail.com <vm...@gmail.com> #254
Apps that crashed: Android only
Last crash: 10 minutes ago 00:57 -05:00
to...@findd.io <to...@findd.io> #255
Apps that crashed: Android only
ex...@hkmci.com <ex...@hkmci.com> #256
Apps that crashed: Android only
ji...@gmail.com <ji...@gmail.com> #257
sm...@gmail.com <sm...@gmail.com> #258
All apps are crashing
ca...@gmail.com <ca...@gmail.com> #259
mi...@gmail.com <mi...@gmail.com> #260
We are seeing seveir alert's in firebase due to google maps SDK. Please take a action, Thanks !!
Lot of user effecting.
[Deleted User] <[Deleted User]> #261
Have word that App still crashes for some users.
la...@gmail.com <la...@gmail.com> #262
ja...@digitalmatter.com <ja...@digitalmatter.com> #263
Platform: Android
fi...@gmail.com <fi...@gmail.com> #264
App is still crashing for some users.
sa...@gmail.com <sa...@gmail.com> #265
Apps still crashing on Android. Nice fix.
va...@gmail.com <va...@gmail.com> #266
platform: Android
en...@google.com <en...@google.com> #267
Description: We believe the crashes in the Google Maps SDKs should be fixed for iOS.
In our previous updates we mentioned that we expected crashes in Maps SDK for Android to disappear by the latest by Thursday, 2020-04-23 22:45 PDT. However, based on internal monitoring and on external developer reports, it appears there are crashes remaining in a number of applications. We apologize for setting incorrect expectations, and we'll continue our investigations.
If you or your users still see crashes, please give us the following information, if available:
- do the crash happen consistently after multiple application restarts from the same device;
- do you see any evolution in the percentage of your user base which is affected;
- do crashes happen in one region specifically.
Maps SDK customers for whom clearing application data is safe can recommend their users clear data for the applications (not just the cache), to speed up recovery.
We will provide an update by Friday, 2020-04-24 00:15 US/Pacific with current details.
Workaround: Clear application data (not just the cache).
vi...@gmail.com <vi...@gmail.com> #268
ro...@gmail.com <ro...@gmail.com> #269
Platform : Android
App is still crashing
ms...@gmail.com <ms...@gmail.com> #270
Platform : Android
App is still crashing
vi...@gmail.com <vi...@gmail.com> #271
Platform : Android
All apps are crashing
[Deleted User] <[Deleted User]> #272
Platform : Android
All apps are crashing
mi...@allegro.com <mi...@allegro.com> #273
Region: Poland
Plaftorm: Android
- crash happens consistently after multiple application restarts from the same device
- still affecting same amount of users
an...@gmail.com <an...@gmail.com> #274
Platform : Android
App is still crashing
cp...@gmail.com <cp...@gmail.com> #275
Android
Still crashing.
em...@iliadeconsulting.com <em...@iliadeconsulting.com> #276
Plateform : Android
All app are still crashing
ja...@gmail.com <ja...@gmail.com> #277
2. We turned off google maps in production until the issue is resolved, crashes were reduced that way. Tests are being run on a dozen local devices.
3. I think it's clear from this issue comment log the issue is wide spread.
Can we expect a more detailed description of the cause? Thankfully the engineers from Fitbit have provided a possible plan B. But an official google response that is not "clear app data" would be appreciated.
[Deleted User] <[Deleted User]> #278
Platform: Android
Still crashin consistently on open for a user who opened the app at 7:20 this morning and had not used it since the previous morning.
[Deleted User] <[Deleted User]> #279
Platform : Android
App is still crashing
[Deleted User] <[Deleted User]> #280
Platform : Android
App is still crashing
ch...@gmail.com <ch...@gmail.com> #281
SharedPreferences googleBug = getSharedPreferences("google_bug", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
de...@gmail.com <de...@gmail.com> #282
I just tested these two applications and both of them are working fine. Note: I performed reinstall (uninstall and then install) for both applications:
- GroundLink Car & Limo Service:
https://play.google.com/store/apps/details?id=com.groundlink - Booking.com: Hotels, Apartments & Accommodation
https://play.google.com/store/apps/details?id=com.booking
Location: Belgrade, Serbia
Device: Samsung Galaxy J6 SM-J600FN, Android version: 9
da...@gmail.com <da...@gmail.com> #283
Platform : Android
App is still crashing
me...@gmail.com <me...@gmail.com> #284
Platform : Android
App is still crashing
[Deleted User] <[Deleted User]> #285
Although a user restart, they can get more than one crash.
2-We have not detected any improvement yet.
3-most crash;
com.google.maps.api.android.lib6.gmm6.vector.ct. <Init>
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length = 1; index = 12
am...@gmail.com <am...@gmail.com> #286
Platform: Android
App still crashing on every load
lu...@gmail.com <lu...@gmail.com> #287
Platform : Android
App is still crashing
ha...@web.de <ha...@web.de> #288
Region: Germany,
Platform: Android
d9...@gmail.com <d9...@gmail.com> #289
Platform: Android
Still seeing crashes from users but not crashing consistently when testing.
hm...@misemise.co.kr <hm...@misemise.co.kr> #290
Platform : Android
1. Just clear cache-> crash
2. clear Data -> work well
3. App remove and Install -> work well
current time : Apr 24, 2020 04:06PM
Google Maps crash rate over the past 30 minutes :
app open : 18000
crash : 7
still crashing
sp...@gmail.com <sp...@gmail.com> #291
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length = 1; index = 12
we get this issues and apps still crashing
ja...@m2xgroup.com <ja...@m2xgroup.com> #292
Platform: Android
Consistently crashing immediately on app restart.
kt...@salesforce.com <kt...@salesforce.com> #293
en...@google.com <en...@google.com> #294
Description: Based on additional investigations, it appears the remaining crashes might be due to some race condition, where the updated data doesn't get fetched early enough, leading to a crash loop.
We are working with highest priority on a new fix, but current ETA for deployment is around 48 hours.
At this point, the recommended way to fix the issue is to "Clear data" of the application, or delete + reinstall it.
We will provide an update by Friday, 2020-04-24 02:15 US/Pacific with the latest details.
Workaround: Clear the application data (not just the cache).
ta...@gmail.com <ta...@gmail.com> #295
Platform: Android
Yes this is still continuously restarting our app even multiple times of restart.
jh...@google.com <jh...@google.com>
sc...@skipscooters.com <sc...@skipscooters.com> #296
Thanks for the update. Given a 48 hour ETA (not going to be acceptable for many companies that rely heavily on maps, I imagine), can we get an official word on whether the approach of deleting ZoomTables.data is safe enough to deploy as an immediate workaround? Will it cause any other cache consistency issues or bugs within the Maps SDK?
ge...@googlemail.com <ge...@googlemail.com> #297
A: Yes, continuesly. All devices.
- do crashes happen in one region specifically.
A: No, all regions all over the world - at least 100,000 users affected, bad rating and all this jazz...(Can we have a direct link to Google rep to flag the bad ratings that occured because of this, contact us please!) We have at least 52000 crash reports in our console...
- do you see any evolution in the percentage of your user base which is affected;
A: It dropped down, but this might be due to people uninstalling the app or reinstalling or giving up. We still see about 100 crash reports hourly. Would be nice if you can get a dedicated team to work this out with us. We can't push an update so fast on a friday morning!
[Deleted User] <[Deleted User]> #298
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(ct.java:9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(cv.java:23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(m.java:14)
at java.lang.Thread.run(Thread.java:764)
Region: France
Crash happens when users access activity containing MapFragment. Sometimes sooner; sometimes later: We have an activity with TabLayout (one tab is a map with markers). Some users manage to click on a marker ang get to a detail activity, also containing a map. Crash happens more often on the detail activity.
Android 9 and 10 (but thats almost all our Users are on those versions)
Devices: Galaxy J6, Galaxy Note10, Galaxy A40 (but most our users have Samsungs)
I can't reproduce the issue.
vo...@gmail.com <vo...@gmail.com> #299
Platform : Android
App is still crashing
sm...@gmail.com <sm...@gmail.com> #300
Region: Greece
Plaftorm: Android
- crash happens consistently after multiple application restarts from the same device
- still affecting same amount of users
en...@google.com <en...@google.com> #301
Description: For crashes happening in the Maps SDK for Android, multiple developers mentioned a workaround consisting in deleting the ZoomTable.data file directly from their application. After review, this fix seems safe, and you could try it in your application.
Please refer to
We will provide an update by Friday, 2020-04-24 02:45 US/Pacific with the latest details.
Workaround: 1. Clear the application data (not just the cache).
2.
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
sa...@gmail.com <sa...@gmail.com> #302
48h is unacceptable.
Edit: okay, thanks.
da...@gmail.com <da...@gmail.com> #303
co...@protonmail.com <co...@protonmail.com> #304
di...@booking.com <di...@booking.com> #305
The solution
SharedPreferences googleBug = getSharedPreferences("google_maps_bug_20200423", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
ru...@basemap.com <ru...@basemap.com> #306
su...@bigbasket.com <su...@bigbasket.com> #307
ha...@web.de <ha...@web.de> #308
1. We can update the App with the Workaround 2
2. Wait 48 Hours and no Update is needed?
Is that correct? I think both Solutions aren't awesome, as the Update takes time in Play Store too. The no Update Solution should be preferred and 48 Hours is way to long. As you can see Millions of Users are affected and Apps get bad reviews. Next Question: Is it possible to remove these Reviews regarding to this Bug?
da...@gmail.com <da...@gmail.com> #309
ha...@gmail.com <ha...@gmail.com> #310
la...@gmail.com <la...@gmail.com> #311
l8...@gmail.com <l8...@gmail.com> #312
co...@gmail.com <co...@gmail.com> #313
Platform: Android
java.lang.ArrayIndexOutOfBoundsException
Consistently crashing immediately on app restart.
li...@gmail.com <li...@gmail.com> #314
More than 5000 crashes
Region : Kuwait
Please fix it
am...@gmail.com <am...@gmail.com> #315
ke...@gmail.com <ke...@gmail.com> #316
ke...@gmail.com <ke...@gmail.com> #317
si...@gmail.com <si...@gmail.com> #318
Platform: Android
java.lang.ArrayIndexOutOfBoundsException
Crash on startup
a....@gmail.com <a....@gmail.com> #319
which can intercept the exception.
onCreate() {
Thread.setDefaultUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
}
public class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
public void uncaughtException(Thread thread, Throwable exception) {
StringWriter stackTrace = new StringWriter();
exception.printStackTrace(new PrintWriter(stackTrace));
String s = stackTrace.toString();
Log.e("Fatal Error", s);
if (s.contains("com.google.maps.api.android.lib6.gmm6.vector")) {
clearFaultyGoogleData();
}
// you should also restart your app after this line
}
// The fix for:
public static void clearFaultyGoogleData() {
Context context = MainApplication.getAppContext();
if (context == null) {
return;
}
File corruptedZoomTables = new File(context.getFilesDir(), "ZoomTables.data");
if (corruptedZoomTables != null) {
try {
corruptedZoomTables.delete();
} catch (Exception e) {
Log.e("Fatal Error", "Couldn't delete goole maps file " + corruptedZoomTables.toString());
}
}
}
}
mi...@gmail.com <mi...@gmail.com> #320
SharedPreferences googleBug = getSharedPreferences("google_maps_bug_20200423", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
May fix the issue, but it will make all our apps launch time longer since we are reading SP right on the start
ha...@web.de <ha...@web.de> #321
li...@gmail.com <li...@gmail.com> #322
a....@gmail.com <a....@gmail.com> #323
ru...@basemap.com <ru...@basemap.com> #324
ki...@gmail.com <ki...@gmail.com> #325
fl...@gmail.com <fl...@gmail.com> #326
ni...@googlemail.com <ni...@googlemail.com> #327
[Deleted User] <[Deleted User]> #328
ga...@gmail.com <ga...@gmail.com> #329
da...@gmail.com <da...@gmail.com> #330
ba...@careem.com <ba...@careem.com> #331
Android
Apps still crashing!
[Deleted User] <[Deleted User]> #332
me...@gmail.com <me...@gmail.com> #333
Android Tablet
Region Canada
jo...@gmail.com <jo...@gmail.com> #334
jo...@gmail.com <jo...@gmail.com> #335
[Deleted User] <[Deleted User]> #336
en...@google.com <en...@google.com> #337
Description: Here's an update on the current mitigation and resolution steps:
- The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT (13 hours ago), and crashes have steadily reduced since. Remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
- For Android users, we are currently working on a release of the Google Play Services (that contains the Maps SDK runtime) that will also fix this issue client-side. The previous ETA of 48 hours as communicated previously still applies.
Thank you to everyone for your continued patience. We will provide another update here by Friday, 2020-04-24 06:00 US/Pacific. (~ 2 hours from now)
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load
Workaround: 1. Clear the affected app's data (not just the cache), or uninstall-reinstall the affected app/s.
2.
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
pa...@gmail.com <pa...@gmail.com> #338
a....@gmail.com <a....@gmail.com> #339
ma...@azuga.com <ma...@azuga.com> #340
fl...@gmail.com <fl...@gmail.com> #341
[Deleted User] <[Deleted User]> #342
1. update the gms com.google.android.gms:play-services-maps package?
2. rebuild the app ?
3. make an new release
after a fix will be released?
lr...@etaxi.es <lr...@etaxi.es> #343
al...@gmail.com <al...@gmail.com> #344
Platform : Android
App is still crashing
le...@pedidosya.com <le...@pedidosya.com> #345
Platform : Android
App is still crashing
na...@zignuts.com <na...@zignuts.com> #346
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216051@20.12.16 (040408-0):9)
is any solution to stop it ?
am i need to update the maps sdk version?
my application is live and it's affect to lose the users
so help to fixed it asap
Thanks
fe...@gmail.com <fe...@gmail.com> #347
db...@gmail.com <db...@gmail.com> #348
1. Download the problem file, thanks @fitbit
2. Rename the file to match the one that google expects on device, ZoomTables.data
3. Via Android Studio, "Device File Explorer" (Found on the right-hand toolbar on my Android Studio v3.6.3)
4. Open the following path, /data/data/com.your.package/files
You should see the Zoom file already there inside this directory.
5. if you right click the files/ folder you should see the "Upload.." option.
6. Upload the bad version you downloaded from this comment, or from comment 205.
7. Open the maps screen in your app and you should see the crash.
Hopefully this will allow you to test any fixes you are trying to put in place.
rg...@iaai.com <rg...@iaai.com> #349
ja...@gmail.com <ja...@gmail.com> #350
fr...@gmail.com <fr...@gmail.com> #351
en...@google.com <en...@google.com> #352
Description: Here's an update on the current mitigation and resolution steps:
- The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT (15 hours ago), and have seen a significant decrease in crashes, although we have again observed an increase in crashes in South America over the last 4 hours, as users have started to come online again. The remaining crashes are to due to client-side caching, which is why we recommend the workarounds mentioned.
- For Android users, we are currently expediting a new release of the Google Play Services (that contains the Maps SDK runtime) that will also fix this issue client-side. The previous ETA of 48 hours as communicated previously still applies.
Thank you to everyone for your continued patience. We will provide another update here by Friday, 2020-04-24 08:00 US/Pacific. (~ 2 hours from now)
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load
Workaround: 1. Clear the affected app's data (not just the cache), or uninstall-reinstall the affected app/s.
2.
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
ph...@tryfi.com <ph...@tryfi.com> #353
ro...@gmail.com <ro...@gmail.com> #354
Platform: Android
App is still crashing
ji...@gmail.com <ji...@gmail.com> #355
wa...@weedmaps.com <wa...@weedmaps.com> #356
in...@gmail.com <in...@gmail.com> #357
ka...@wikiloc.com <ka...@wikiloc.com> #358
Btw, some of our users have reported that uninstalling and reinstalling doesn't work.
pe...@gmail.com <pe...@gmail.com> #359
Received the same reports, it's most likely due to backup being activated and the ZoomTable with issues is being brought again.
But haven't being able to test this one.
Also:
Region: Brazil
Platform: Android
App is still crashing
We just pushed to the store an update with the workaround 2. Still checking if it'll solve the issue since we haven't been able to reproduce on our test devices because the problem was already solved on "new devices" at the time we received the crash reports.
ha...@gmail.com <ha...@gmail.com> #360
[Deleted User] <[Deleted User]> #361
fr...@gmail.com <fr...@gmail.com> #362
jo...@advance-auto.com <jo...@advance-auto.com> #363
ro...@glovoapp.com <ro...@glovoapp.com> #364
We already released a hotfix with this patch which works successfully (we tested with corrupted devices).
However Google Play rollout is slow by nature. We won't have a significant amount of user with the patched version until too late.
There should be a fast rollout feature in Google Play to quickly rollout fixes with issues like this one.
ra...@gmail.com <ra...@gmail.com> #365
ha...@gmail.com <ha...@gmail.com> #366
en...@google.com <en...@google.com> #367
Description: Here's an update on the current mitigation and resolution steps:
- The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT (17 hours ago), and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
- For Android users, although we are still expediting a new release of the Google Play Services (that contains the Maps SDK runtime) that will also fix this issue client-side, it appears our initial 48 hour estimate for rolling out the fix was overly optimistic. We are currently reassessing the release timeline.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case via
We are also aware of a few customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Thank you to everyone for your continued patience. We will provide another update here by Friday, 2020-04-24 11:00 US/Pacific. (~ 2 hour from now)
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load
Workaround: 1. Clear the affected app's data (not just the cache), or uninstall-reinstall the affected app/s.
2.
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
ha...@gmail.com <ha...@gmail.com> #368
ma...@fing.com <ma...@fing.com> #369
We're still receiving Firebase alerts for our iOS App. Is there any suggested way to work it around for the time being? Would the same workaround work on iOS?
ki...@gmail.com <ki...@gmail.com> #370
We are also getting some new crashes with the map on our Android app.
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at
at com.google.android.m4b.maps.au.cz.a(cz.java:24)
at com.google.android.m4b.maps.at.l.a(l.java:87)
at com.google.android.m4b.maps.at.n.run(n.java:2)
at java.lang.Thread.run(Thread.java:764)
Can you please confirm if the intended fix will cover m4b too?
ga...@gmail.com <ga...@gmail.com> #371
On iOS this issue is still appearing, what would be the fix for it? The users would need just to wait until the cache expires or is there another solution for this?
Thanks.
ai...@gmail.com <ai...@gmail.com> #372
a....@gmail.com <a....@gmail.com> #373
try {
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
// log or ignore so nothing breaks for the people who are not at all effected due to SecurityException or what not...
}
In the Application.onCreate(), and that seem to have worked for our users and the following error is not coming in anymore:
java.lang.ArrayIndexOutOfBoundsException:
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init> (com.google.android.gms.dynamite_mapsdynamite@201216083@20.12.16 (120408-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a (com.google.android.gms.dynamite_mapsdynamite@201216083@20.12.16 (120408-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run (com.google.android.gms.dynamite_mapsdynamite@201216083@20.12.16 (120408-0):14)
at java.lang.Thread.run (Thread.java:919)
Google review team were helpful and approved the patch within an hour. Hope that helps others who are patching...
wi...@gmail.com <wi...@gmail.com> #374
ca...@gmail.com <ca...@gmail.com> #375
Many of my Android users are still reporting the crash even after uninstalling / reinstalling the app. Since the bad data is stored in the app's data directory, and not cache, perhaps the system app backup is restoring the bad data upon reinstall if android:allowBackup="true"
is set.
fe...@gmail.com <fe...@gmail.com> #376
an...@gmail.com <an...@gmail.com> #377
SharedPreferences googleBug = getSharedPreferences("google_bug", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
If our users unnistall the applications and the bug doesn`t appear, is it temporary? Are we waiting for another fixed?
ro...@movilizando.me <ro...@movilizando.me> #378
Please we need more information from you, we developers are the ones who mostly receive all user complaints.
The least we expect from you is more information.
When will the problem be solved?
Why do we need to apply the patch?
Thanks in advance
bo...@gmail.com <bo...@gmail.com> #379
Is there a client-side workaround for apps built with Maps 3.0.0 Beta?
aa...@fitbit.com <aa...@fitbit.com> #380
jo...@gmail.com <jo...@gmail.com> #381
mk...@gmail.com <mk...@gmail.com> #382
ph...@tryfi.com <ph...@tryfi.com> #383
Still seeing crashes slowly roll in on both iOS/Android clients, US region. Have spoken directly with some affected users who have been unable to resolve with the provided workarounds, please provide guidance/resolution. Also curious when an iOS SDK update can be expected to fix client side?
st...@gmail.com <st...@gmail.com> #384
ph...@tryfi.com <ph...@tryfi.com> #385
Current stated status: "We believe the crashes of Google Maps SDK have been fixed for iOS"
sc...@skipscooters.com <sc...@skipscooters.com> #386
Since I've seen a lot of questions still about what happened, what workarounds are available, and why those workarounds are needed, I'll try to answer them with my best understanding of the situation (caveat: I do not work at Google, and I have no internal knowledge of the issue; this is just an explanation I have pieced together with the publicly available information, so please take this with a grain of salt).
What happened?
The Maps SDK will occasionally fetch data from the server, and cache that data locally. Presumably the data that was returned by the server changed (around 12pm pacific time on 4/23/20), in a way that caused a crash when processing that data (I'll refer to this as the beginning of the server outage). However, it appears that the SDK still wrote the data to a local cache file (ZoomTables.data) before processing it (and therefore it would not crash before it wrote it to disk), meaning that once your app downloaded the bad data, it would continue to have that bad data in storage.
This would explain the initial behavior seen yesterday: during the server outage window, if you opened an app with Maps, it would likely refresh the data from the server and write it to disk, but not necessarily crash immediately. However, if you closed and reopened the app, it would crash when starting the Maps components when it processed that bad data from disk.
It's also worth pointing out the crash was occurring on a background thread of the Maps SDK - this is why it is not possible to protect against this failure with any kind of try/catch (as I saw mentioned a few times in this bug tracker yesterday), as it happens in a thread started internally by the SDK. Since none of your application code appears anywhere in the trace, it would not be possible to wrap this code in a try/catch in your application code:
java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201515081@20.15.15 (120400-0):9)
at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201515081@20.15.15 (120400-0):23)
at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201515081@20.15.15 (120400-0):14)
at java.lang.Thread.run(Thread.java:919)
How was this "partially resolved"?
Around Apr 23, 2020 02:48PM (pacific time), Google mentioned an issue was identified and was being rolled back. This was presumably the change in data returned by the server that was causing crashes. Note that in a large, globally-distributed web application, deploying a change globally is generally not an instantaneous process and will take time to propagate fully to all servers, so this is likely why there wasn't immediately a definitive "all clear." It also potentially explains why Google asked several times about what regions people were still experiencing issues in, in case the server outage had not been fully resolved (e.g. due to some server instances in different locations continuing to serve the bad data for some reason).
Why do apps keep crashing even after the server issue was fixed?
As mentioned before, the bad data was cached in local device storage, and is processed very soon after initiating Maps SDK code (and therefore crashes right away). So even though the server was no longer serving bad data, any users who had previously used Maps during the server outage window would have cached the bad data on their device, and therefore would continue to crash.
In other words, the crashes do not appear to have been triggered by a code change to any code running on users' devices, it was caused by new bad data that caused existing Maps SDK code to hit a pre-existing bug. Since it was bad data that initiated the crashes (and that bad data gets cached locally), there was no code that Google could easily roll back to immediately and fully resolve the issue - the best quick option was to prevent new users from getting into that bad state, by reverting the server change.
Here is the unfortunate part about last night's expected resolution time: it appears that although the cached data was designed to expire after some time ("users can wait for new data to be fetched [...] within 6 hours for Maps SDK for Android") and Google expected this would clear up any users that had bad cached data, there appears to have been a race when the Maps SDK starts, between the cached data being processed (and crashing) and new data being fetched from the server. If the crash happens fast enough every time you open the app, it will never have a chance to successfully fetch new data to replace the bad data, and therefore will keep crashing.
What are the workarounds, and why do they work?
There are 2 main workarounds, and a 3rd that is still being developed:
-
Have users clear app storage (not cache) or uninstall/reinstall the app (note: as #391 points out, uninstalling/reinstalling may not work if allowBackup="true" since the bad data may be restored when reinstalled; if your app allows backup users should clear app storage). This works because it results in the bad cached data (stored at
files/ZoomTables.data
in your app's internal data directory) being removed, so the next time the Maps SDK is used it will fetch the new data, which no longer causes crashes. However, this is problematic for apps that store important user data locally only, without any backend server sync mechanism for that data, in which case clearing app storage would potentially result in them losing their data. -
Deploy an update to your application that deletes
ZoomTables.data
just once. Since it's difficult (and potentially problematic) to ask all of your users to clear app data or reinstall, the only other way to get them out of a crash loop is to delete the problematic data before the Maps SDK starts up and crashes. The suggested workaround code (to be installed in your Application onCreate so it runs immediately on app launch) deletes the file once, and remembers that it has done this by writing to SharedPreferences (obviously you can replace that mechanism with your own key/value store if you already have one in place). It's unfortunate that users will have to update the app to get out of the crash loop, but this is currently the best option to non-destructively resolve the issue for users in a short timeframe. Note that you'll need to keep this workaround code in place until you believe that many/most users who cached the bad data have updated to that new version of the app and opened it at least once (i.e. you'll want to keep it there for at least a few releases). -
TBD: Play Services update to avoid crashing and/or clear the bad data. Since many of Google's SDKs are backed by Play Services, there is potentially the ability for Google to resolve the crash by pushing an update to Play Services globally, without requiring every app developer to update their own app. I'm not familiar with the exact interaction or mechanism with Play Services, but I will note that Play Services is a very critical component to Google-certified Android phones, and therefore is likely to require significant testing and a staged rollout to ensure that the update doesn't cause any other unforeseen problems. On a global scale, deploying an update to a critical component in a short timeframe safely to essentially every Google-certified Android phone is a massive undertaking.
[Deleted User] <[Deleted User]> #387
ss...@google.com <ss...@google.com>
en...@google.com <en...@google.com> #388
Description: Here's an update on the current mitigation and resolution steps:
- The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
- For Android users, although we are still expediting a new release of the Google Play Services (that contains the Maps SDK runtime) that will also fix this issue client-side, it appears our initial 48 hour estimate for rolling out the fix was overly optimistic. We are currently reassessing the release timeline.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
Our Support Team will internally escalate your request and expedite the approval.
We are also aware of a few customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Thank you to everyone for your continued patience. We will provide another update here by Friday, 2020-04-24 16:00 US/Pacific. (~ 3 hour from now)
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load
Workaround: 1. Clear the affected app's data (not just the cache), or uninstall-reinstall the affected app/s.
2.
try {
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
// log or ignore so nothing breaks.
}
[Deleted User] <[Deleted User]> #389
ja...@gmail.com <ja...@gmail.com> #390
pa...@gmail.com <pa...@gmail.com> #391
FYI, the uninstall/reinstall may not work for all users if the app data is backed up. If you take the app data clearing fix and have android:allowBackup="true"
in your app manifest, ask users to only clear the app data and not uninstall/reinstall the app.
av...@google.com <av...@google.com> #392
Rest assured, we will publish an analysis of this incident once we have completed our internal investigation. In the meantime, please continue to track our updates for status and workarounds. (You can find the latest update from Google linked from
ja...@gmail.com <ja...@gmail.com> #393
I emailed Wonolo about this and it stated that it's related to the Google map.
I'm here and I'm realizing the problem.
Can this be fixed soon?
Thanks
ze...@hkmci.com <ze...@hkmci.com> #394 Restricted
[Deleted User] <[Deleted User]> #395
Thank you for providing code fix for Android.
Any recommendation for iOS platforms (Swift language) ? Please provide code fix for iOS (Swift Language)
sh...@gmail.com <sh...@gmail.com> #396
I can't get Google Maps to show on my app or my production app in Xcode Simulator.
Thanks!
en...@google.com <en...@google.com> #397
Description: Here's an update on the current mitigation and resolution steps:
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Thank you to everyone for your continued patience.
We will provide another update here by Friday, 2020-04-24 21:00 US/Pacific. (~ 4 hours from now)
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load
Workaround: 1. Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s)
2. Add the following to your app:
For Android: Per
try {
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
// log or ignore so nothing breaks.
}
For iOS: We are working on a code-based workaround to complement our server-side mitigations, and will share as soon as one is available. Once it is available and you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
ah...@google.com <ah...@google.com>
en...@google.com <en...@google.com> #398
Description: Here's an update focusing on the code mitigations for iOS and Android. The Android mitigation is an elaboration of the mitigation already published.
Please note that we are shifting to longer intervals between updates and will provide the next update by Saturday, 2020-04-25 17:00 US/Pacific.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS & Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL]);
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
ah...@google.com <ah...@google.com> #399
Summary: Google Maps Android and iOS SDK is crashing -- Mitigation Offered
Description:
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline.
For developers rolling-out their own code mitigation, Support can be found at
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Thank you to everyone for your continued patience.
ha...@gmail.com <ha...@gmail.com> #400
[Deleted User] <[Deleted User]> #401
My concern with the current workaround is - the corrupted data was initially identified as only "ZoomTables.data", and later "SavedClientParameters.data.cs" and ""DATA_ServerControlledParametersManager.data.v1.${packageName}" were added to that list. What if there are more that are unknown at the moment.
ca...@gmail.com <ca...@gmail.com> #402
Im using the v3 beta version of the maps sdk which use the map library of its own and not using the play services.
Any other suggestions?
ch...@gmail.com <ch...@gmail.com> #403
I'm using v3 on some apps as well, in that case there is no ZoomTables.data file as far as I can see.
I had success with deleting the file: "com.google.android.libraries.maps._m_u"
Instead
mi...@gmail.com <mi...@gmail.com> #404
And can you provie palyService version number details too, Thanks !!
ha...@gmail.com <ha...@gmail.com> #405
sh...@gmail.com <sh...@gmail.com> #406
I've read the comment by @skipscooters, however I am not exactly sure how to get rid of app cache or app data storage on Xcode Simulator.
Thanks
yu...@gmail.com <yu...@gmail.com> #407
Thank you for your efforts to resolve this issue. Just a quick question:
You released an update for Google Play Services to resolve this issue, and we've observed updates in some of our devices.
> We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side.
I understand updates are pushed automatically without the user updating from Google Play, but what triggers updates for Google Play Services on Android devices?
Thanks!
ge...@googlemail.com <ge...@googlemail.com> #408
ha...@gmail.com <ha...@gmail.com> #409
al...@gmail.com <al...@gmail.com> #410
The issue is resolved on google's server end so new apps won't face this crash as they will download the fixed data.
Only the apps that downloaded the data at the time when Google's server had faulty data will face this issue.
al...@gmail.com <al...@gmail.com> #411
The "Google Play Services" update is automatic users won't need to manually install this once available.
cu...@gmail.com <cu...@gmail.com> #412
to...@gmail.com <to...@gmail.com> #413
dd...@gmail.com <dd...@gmail.com> #414
yu...@gmail.com <yu...@gmail.com> #415
This crash affected many users in app . We're still waiting solution.
[Deleted User] <[Deleted User]> #416
yu...@gmail.com <yu...@gmail.com> #417
#411 and Google Team,
Thank you for your reply.
Sorry I made mistake...
It's actually "... updates are pushed automatically without
the user updating from Google Play..."
The "Google Play Services" update is automatic users won't need to manually install this once available.
I understand updates are pushed automatically without the user updating from Google Play, but when will updates for Google Play Services on Android devices be delivered? What triggers them?
Thanks.
mu...@gmail.com <mu...@gmail.com> #418
i had the same issue i think my question(
So that it could be resolved with your help,
request Assistance ASAP
[Deleted User] <[Deleted User]> #419
When is this expected to be fixed? and how to fix it ? Update Google Play services version or hot-fixed by the backend service????
me...@bolt.eu <me...@bolt.eu> #420
Hello Google Team
I would like to inform you that for some customers uninstalling and installing again or clearing data (not cache of course) is not helping as you mentioned here
We are aware that you are working on this fix already but we kindly ask that when we can get some resolution?
Good day!
en...@google.com <en...@google.com> #421
Description: Here's an update on the current mitigation and resolution steps:
Please note that we are shifting to longer intervals between updates and will provide the next update by Sunday, 2020-04-26 18:00 US/Pacific.
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline. Currently the best course of action is for developers to roll out their own client-side workarounds via an update to their apps.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
If iOS developers wish to roll out their own client-side workarounds via an update to their apps, but experience review approvals delays, please file a support case with your app’s ID, Bundle ID, name, and the version number that needs to be reviewed:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Thank you to everyone for your continued patience.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL]);
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
wa...@gmail.com <wa...@gmail.com> #422
wo...@gmail.com <wo...@gmail.com> #423
Regards
la...@gmail.com <la...@gmail.com> #424
jc...@gmail.com <jc...@gmail.com> #425
mi...@gmail.com <mi...@gmail.com> #426
Last update in
je...@gmail.com <je...@gmail.com> #427
wa...@gmail.com <wa...@gmail.com> #428
mi...@google.com <mi...@google.com>
gl...@loker.tech <gl...@loker.tech> #429
CRASH ON REACT NATIVE ?
For those using React Native and Android is crashing
Make sure you include this 3 lines
import android.content.Context;
import android.content.SharedPreferences;
import java.io.File;
On your file > MainApplication.java
USE THIS FIX ::
@Override
public void onCreate() {
super.onCreate();
SharedPreferences googleBug = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!googleBug.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
corruptedZoomTables.delete();
googleBug.edit().putBoolean("fixed", true).apply();
}
SoLoader.init(this, /* native exopackage */ false);
}
ad...@breezeworks.com <ad...@breezeworks.com> #430
The Objective-C code in
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL]);
la...@gmail.com <la...@gmail.com> #431
[[NSFileManager defaultManager] removeItemAtURL:url error:nil];
nt...@gmail.com <nt...@gmail.com> #432
pp...@salesforce.com <pp...@salesforce.com> #433
Is there any ETA for this so that we can communicate the same to our customers??
dv...@gmail.com <dv...@gmail.com> #434
ru...@gmail.com <ru...@gmail.com> #435
private void FixGoogleMapBug() {
try {
ISharedPreferences googleBug = GetSharedPreferences("google_bug_154855417", FileCreationMode.Private);
if(!googleBug.Contains("fixed")) {
string file = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "ZoomTables.data");
File.Delete(file);
googleBug.Edit().PutBoolean("fixed", true).Apply();
}
} catch(Exception) {
}
}
ac...@wavecable.com <ac...@wavecable.com> #436
de...@pulsepoint.org <de...@pulsepoint.org> #437
mw...@gmail.com <mw...@gmail.com> #438
I realize it's a weekend, but this warrants extra time by someone at Google. We're over 160k new crashes in the last 48 hours thanks to this.
mi...@gmail.com <mi...@gmail.com> #439
Thanks!!
ch...@gmail.com <ch...@gmail.com> #440
mu...@gmail.com <mu...@gmail.com> #441
i had the same issue i think my question(
So that it could be resolved with your help,
request Assistance ASAP
mi...@google.com <mi...@google.com> #442
Addendum to the update in
Re.
In the mean time, we recommend rolling out your own client-side workarounds via an update to your apps (see
Re. .v1
that is the file to delete. That is, delete all of
DATA_ServerControlledParametersManager.data.${packageName}
DATA_ServerControlledParametersManager.data.v1.${packageName}
Re.
Re.
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
Re.
Re.
da...@gmail.com <da...@gmail.com> #443
ha...@gmail.com <ha...@gmail.com> #444
mi...@google.com <mi...@google.com> #445
We are processing requests received in the last 12 hours, but a few of them are missing application/s id and package name.
an...@playtomic.io <an...@playtomic.io> #446
As someone already mentioned above, in our case we did not have the DATA_ServerControlledParametersManager.data.v1.${packageName}
in our devices but DATA_ServerControlledParametersManager.data.${packageName}
, without the v1
. Google said we have to removed both, but did not provide an updated workaround, so be careful if you use the provided one without adding that 4th file to the list.
This is the Kotlin code we used:
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
The method .delete()
returns false if the file is not found, so it is safe to try with both.
oo...@gmail.com <oo...@gmail.com> #447
pr...@gmail.com <pr...@gmail.com> #448
1. If I understand it correctly you either have data.v1. or you have data.? And you should either find out which one you have and use delete() func on the one you have, or use delete() function on both. This as delete() operation is secured if file is not found.
2. These files we remove will not be used in the future when all is fixed? These are "dead files" and the the functionality in these files will be moved and renamed by Google team once they are fixed? Or maybe they already have been.
This so we don't for example have a version out deleting the fixed versions of "ZoomTables.data", "SavedClientParameters.data.cs" and "DATA_ServerControlledParametersManager.data..." files. This should be a no-brainer, but just to be sure about future possible scenarios for us developers sorrounding this.
pr...@gmail.com <pr...@gmail.com> #449
(We have our getMapAsync near startup of the app. Can possibly be moved)
me...@gmail.com <me...@gmail.com> #450
po...@gmail.com <po...@gmail.com> #451
App is carsing on all kinds of android phone models.
What is the ETA ?
ja...@gmail.com <ja...@gmail.com> #452
Please Help!!
en...@google.com <en...@google.com> #453
Description: Here's an update on the current mitigation and resolution steps:
We will provide the next update by Sunday, 2020-04-26 20:00 US/Pacific.
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline. Currently the best course of action is for developers to roll out their own client-side workarounds via an update to their apps.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
If iOS developers wish to roll out their own client-side workarounds via an update to their apps, but experience review approvals delays, please file a support case with your app’s ID, Bundle ID, name, and the version number that needs to be reviewed:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Thank you to everyone for your continued patience.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Note: in some cases the file to be deleted is "DATA_ServerControlledParametersManager.data.${packageName}" (same as above, without ".v1"). We are working on reviewing our code workaround to take this into consideration.
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
en...@google.com <en...@google.com> #454
Description: Here's an update on the current mitigation and resolution steps:
We will provide the next update by Sunday, 2020-04-26 22:00 US/Pacific.
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline. Currently the best course of action is for developers to roll out their own client-side workarounds via an update to their apps.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
If iOS developers wish to roll out their own client-side workarounds via an update to their apps, but experience review approvals delays, please file a support case with your app’s ID, Bundle ID, name, and the version number that needs to be reviewed:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Some Android application developers inquired about 1-star reviews left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, you can escalate the issue to us through a support case.
Thank you to everyone for your continued patience.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Note: in some cases the file to be deleted is "DATA_ServerControlledParametersManager.data.${packageName}" (same as above, without ".v1"). We are working on reviewing our code workaround to take this into consideration.
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
rb...@google.com <rb...@google.com>
su...@gmail.com <su...@gmail.com> #455
Many thanks for your issue update. We have asked customers to uninstall and install app; however, customers still encountered multiple crashed, resulting in losing our product credibility. We would like to know if it is possible for Google to post a brief official announcement regarding this issue so that our company could have a better explanation to the clients.
Thanks in advance.
rb...@google.com <rb...@google.com> #456
In our next update, we'll address
-
Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
en...@google.com <en...@google.com> #457
Description: Here's an update on the current mitigation and resolution steps:
Note: we have updated the code workarounds for Android, to include the corruptedClientParametersData file name variation mentioned in
We will provide the next update by Monday, 2020-04-27 00:00 US/Pacific.
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline. Currently the best course of action is for developers to roll out their own client-side workarounds via an update to their apps.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
If iOS developers wish to roll out their own client-side workarounds via an update to their apps, but experience review approvals delays, please file a support case with your app’s ID, Bundle ID, name, and the version number that needs to be reviewed:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Some Android application developers inquired about 1-star reviews left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, please escalate the issue to us through a support case.
Some Android developers also inquired about the Play Services version number where the fix will land: the current plan is to push an updated module to the past few released versions of the Play Services. We’ll keep you updated when we have anything to share.
Thank you to everyone for your continued patience.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
en...@google.com <en...@google.com> #458
Description: Here's an update on the current mitigation and resolution steps:
What’s New since last update: Nothing. Work on this incident is still ongoing, but we have nothing new to share at the moment.
We will provide the next update by Monday, 2020-04-27 04:00 US/Pacific (~4 hours from now).
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned below.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline. Currently the best course of action is for developers to roll out their own client-side workarounds via an update to their apps.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
If iOS developers wish to roll out their own client-side workarounds via an update to their apps, but experience review approvals delays, please file a support case with your app’s ID, Bundle ID, name, and the version number that needs to be reviewed:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Some Android application developers inquired about 1-star reviews left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, please escalate the issue to us through a support case.
Thank you to everyone for your continued patience.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
gi...@gmail.com <gi...@gmail.com> #459
I'm currently using 2.7.0 - thanks
vl...@taxfix.de <vl...@taxfix.de> #460
Otherwise it is not going to be executed again. wdyt?
ma...@google.com <ma...@google.com>
ch...@gmail.com <ch...@gmail.com> #461
ki...@gmail.com <ki...@gmail.com> #462
I'm wondering if applying the logic from #319 would be wise to use? I mean that i implemented #458 in my code, but what if that same problem happens again?
an...@gmail.com <an...@gmail.com> #463
---
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
---
What is the right way to migrate to the new version of fix?
I mean we are not deleting:
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
pa...@gmail.com <pa...@gmail.com> #464
Google creates an error and every developer must fix it... o_O
en...@google.com <en...@google.com> #465
Description: Here's an update on the current mitigation and resolution steps:
What’s New since last update: Nothing. Work on this incident is still ongoing, but we have nothing new to share at the moment.
We will provide the next update by Monday, 2020-04-27 08:00 US/Pacific (~4 hours from now).
The backend service that caused this crash has been hot-fixed on 2020-04-23 15:00 PT, and we have seen a significant decrease in crashes since then.
The remaining crashes are due to client-side caching, which is why we recommend the workarounds mentioned below.
For Android: We are expediting a new release of the Google Play Services (that contains the Maps SDK runtime) which will fix this issue client-side. Our initial 48 hours estimate for rolling out this fix was overly optimistic, and we are currently reassessing the release timeline. Currently the best course of action is for developers to roll out their own client-side workarounds via an update to their apps.
If Android developers wish to roll out their own client-side workarounds via an update to their apps in Google Play Store, but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
If iOS developers wish to roll out their own client-side workarounds via an update to their apps, but experience review approvals delays, please file a support case with your app’s ID, Bundle ID, name, and the version number that needs to be reviewed:
We are also aware of customer reports where clearing the application data or uninstalling and reinstalling the application has not fixed the issue, and we are continuing to investigate the issue.
Some Android application developers inquired about 1-star reviews left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, please escalate the issue to us through a support case.
Thank you to everyone for your continued patience.
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
ma...@google.com <ma...@google.com>
di...@gmail.com <di...@gmail.com> #466
ha...@gmail.com <ha...@gmail.com> #467
Google we need updats ASAP. its creating negative impressions for app.
[Deleted User] <[Deleted User]> #468
I agree with
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed_2")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed_2", true).apply()
}
} catch (exception: Exception) {
}
db...@gmail.com <db...@gmail.com> #469
Good luck out there!
jr...@gmail.com <jr...@gmail.com> #470
dj...@gmail.com <dj...@gmail.com> #471
- You should communicate your problem to the developer/company of the app, and even link to this issue for them to fix the issue. You cannot fix this issue on your own afaik unless deleting the app/data works.
This place is for developers to seek/share information, and for Google developers to keep track of issues. I'm not saying you cannot comment here, of your course you can, but it's up to the developer of the app and/or Google to fix the issue.
[Deleted User] <[Deleted User]> #472
Do we have any update ? As mentioned to get next update on 2020-04-27 08:00 US/Pacific.
Crashes count got reduced but we could see some users are still seeing crash.
Please provide update .
en...@google.com <en...@google.com> #473
Description: News since last update: We have started rolling out updated versions of the Google Play Services on Android, at this stage at a small scale. We are doing everything we can to ensure we can safely roll-out these updated versions at a larger scale as fast as possible. We will communicate more details about this as soon as we can.
In the meantime, we still highly recommend developers to roll out their own client-side code workarounds via an update to their apps. If you do so but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
Some application developers inquired about 1-star reviews left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, please escalate the issue to us through a support case.
At this stage, developers on iOS still need to update and publish their app with the code workarounds communicated here.
Thank you to everyone for your continued patience. We will provide the next update here by Monday, 2020-04-27 12:00 US/Pacific (~3 hours from now).
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
jh...@google.com <jh...@google.com> #474
ll...@fieldmargin.com <ll...@fieldmargin.com> #475
Some crash information:
gmscore::renderer::GLState::Flush() + 16388
gmscore::renderer::GLScopedContext::~GLScopedContext() + 31600
-[GMSEntityRendererView setFrame:] + 436308
-[GMSVectorMapView setFrame:] + 184912
nu...@gmail.com <nu...@gmail.com> #476
Do you still recommend that developers release a new version of their application with your soft code work-a-around even after the full rollout?
jh...@google.com <jh...@google.com> #477
ch...@gmail.com <ch...@gmail.com> #478
di...@gmail.com <di...@gmail.com> #479
using System;
using System.IO;
using Android.App;
using Android.Content;
namespace YOURNAMESPACE
{
#if DEBUG
[Application(Debuggable=true)]
#else
[Application(Debuggable = false)]
#endif
public class MainApplication : Application
{
public MainApplication(IntPtr javaReference, Android.Runtime.JniHandleOwnership transfer) : base(javaReference,
transfer)
{
}
public override void OnCreate()
{
base.OnCreate();
FixGoogleMapBug();
}
private void FixGoogleMapBug()
{
try
{
ISharedPreferences googleBug = GetSharedPreferences("google_bug_154855417", FileCreationMode.Private);
if (!googleBug.Contains("fixed"))
{
var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var corruptedZoomTables = Path.Combine(folderPath, "ZoomTables.data");
var corruptedSavedClientParameters = Path.Combine(folderPath, "SavedClientParameters.data.cs");
var corruptedClientParametersData = Path.Combine(folderPath, "DATA_ServerControlledParametersManager.data." + BaseContext.PackageName);
var corruptedClientParametersDataV1 = Path.Combine(folderPath, "DATA_ServerControlledParametersManager.data.v1." + BaseContext.PackageName);
File.Delete(corruptedZoomTables);
File.Delete(corruptedSavedClientParameters);
File.Delete(corruptedClientParametersData);
File.Delete(corruptedClientParametersDataV1);
googleBug.Edit().PutBoolean("fixed", true).Apply();
}
}
catch (Exception e)
{
}
}
}
}
+ comment old Application class in AssemblyInfo if needed:
// #if DEBUG
// [assembly: Application(Debuggable = true)]
// #else
// [assembly: Application(Debuggable = false)]
// #endif
ty...@gmail.com <ty...@gmail.com> #480
We hotfixed our build when only the zoomtables file was recommended to be deleted, and would like to understand if we need to hotfix again, now that our crashes are recovered.
en...@google.com <en...@google.com> #481
Description: News since last update: We started rolling out updated versions of the Google Play Services on Android, at this stage at a small scale. We are monitoring how the roll-out is progressing throughout the day and plan to target a larger scale roll-out this evening PT based on our findings. We are continuing to monitor this tracker for updates from the community and will share more details about the progress of the roll-out according to the next update time communicated below (sooner if there are significant updates to be shared in the interim).
In the meantime, we still highly recommend developers to roll out their own client-side code workarounds via an update to their apps. If you do so but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
Some application developers inquired about 1-star reviews left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, please escalate the issue to us through a support case.
At this stage, developers on iOS still need to update and publish their app with the code workarounds communicated here.
Thank you to everyone for your continued patience. We will provide the next update here by Tuesday, 2020-04-28 00:00 US/Pacific (~12 hours from now).
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Once you have deployed it in your app, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's ID, Bundle ID, and the version you want reviewed in your case.
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your app for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
[Deleted User] <[Deleted User]> #482
Few queries:
What is the root cause of this issue? What informations are saving in com.google.GoogleMaps/ServerControlledParams file? Any impact if we delete com.google.GoogleMaps/ServerControlledParams file? Can you provide more info on GoogleMapsServerControlledParamsKey_bug_154855417 key?
cl...@gmail.com <cl...@gmail.com> #483
st...@gmail.com <st...@gmail.com> #484
br...@theaccessgroup.com <br...@theaccessgroup.com> #485
ni...@hpcnt.com <ni...@hpcnt.com> #486
fe...@gmail.com <fe...@gmail.com> #487
com.google.maps.api.android.lib6.gmm6.vector.ct.<init>
Expecting an update at 1900hrs (UTC+12) 28 Apr 2020 as per IssueTracker.
ha...@gmail.com <ha...@gmail.com> #488
en...@google.com <en...@google.com> #489
Description: # Android
We have pushed the updates to the Google Play Services on Android to a larger scale, and continue to monitor how the roll-out is progressing.
We still highly recommend developers to roll out their own client-side code workarounds via an update to their apps. If you do so but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
The workaround provided here covers all available flavors and versions of our SDKs for Android. To clarify further:
* Applications that use Maps Android SDK v2 should only need to delete one file: ZoomTables.data.
* Applications that use Maps Android SDK v3 beta should only need to delete one file, either `DATA_ServerControlledParametersManager.data.v1. + getBaseContext().getPackageName())` or `DATA_ServerControlledParametersManager.data. + getBaseContext().getPackageName())`
Some application developers inquired about 1-star reviews in the Google Play Store left by end-users due to crashes. We took note of those concerns, and will investigate what we can do to address them. In the meantime, if the negative reviews are causing business impact such as the app being removed from the store, please escalate the issue to us through a support case.
# iOS
Developers on iOS need to update and publish their app with the code workarounds communicated here.
After our internal discussion, we concluded that we are not able to ask Apple on developers behalf to expedite application reviews. So after deploying the workaround in your app, please contact Apple directly.
Thank you to everyone for your continued patience. We will provide the next update here by Tuesday, 2020-04-28 12:00 US/Pacific (~12 hours from now).
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
Or, apply the code workarounds below for your application.
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your Android app to Play Store for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
ay...@gmail.com <ay...@gmail.com> #490
Should we delete that file?
as...@google.com <as...@google.com> #491
as...@google.com <as...@google.com> #492
ah...@gmail.com <ah...@gmail.com> #493
Please suggest me on same, Thanks.
ja...@holidaymakerapp.co.uk <ja...@holidaymakerapp.co.uk> #494
fa...@knowit.se <fa...@knowit.se> #495
Thanks.
[Deleted User] <[Deleted User]> #496
This issue is causing us to lose precious business these days.
Please let us know when is the ETA for full rollout of the play services.
Thank you
ha...@gmail.com <ha...@gmail.com> #497
gp...@gmail.com <gp...@gmail.com> #498
Could it be that the corrupted chached file has a TTL?
I asked other users to check, some are still having the same problem.
I expect you take care of all the 1 star ratings I gained thanks to this issue, and also avoid charging failed SDK requests in the bill (an additional discount would be nice too)
ho...@gmail.com <ho...@gmail.com> #499
ja...@gmail.com <ja...@gmail.com> #500
I still can't find jobs on the Wonolo App, it continues to kick me out.
la...@gmail.com <la...@gmail.com> #501
en...@google.com <en...@google.com> #502
Description: # Android
We are continuing to roll out updates to Google Play Services on Android, and so far we have seen crash rates decrease significantly as that progresses.
We still highly recommend developers to roll out their own client-side code workarounds via an update to their apps. If you do so but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
The workaround provided here covers all available flavors and versions of our SDKs for Android. To clarify further:
* Applications that use Maps Android SDK v2 should only need to delete one file: ZoomTables.data.
* Applications that use Maps Android SDK v3 beta should only need to delete one file, either `DATA_ServerControlledParametersManager.data.v1. + getBaseContext().getPackageName())` or `DATA_ServerControlledParametersManager.data. + getBaseContext().getPackageName())`
Some application developers inquired about 1-star reviews in the Google Play Store left by end-users due to crashes. We took note of those concerns and have been in discussion internally about the proper way address those. Please note that it may not be possible for us to remove reviews in a way that satisfies Google Play's policy. In the meantime, we have confirmed that applications should not be automatically removed from the Google Play store due to negative review. It's also worth noting that any corrective measures taken on our part to restore review rating will eventually be overwritten with time, as we consider the most recent reviews when calculating the average rating:
# iOS
Developers on iOS need to update and publish their app with the code workarounds communicated here.
After our internal discussion, we concluded that we are not able to ask Apple on developers behalf to expedite application reviews. After deploying the workaround in your app, please contact Apple directly.
Thank you to everyone for your continued patience. We will provide the next update here by Wednesday, 2020-04-29 00:00 US/Pacific (~12 hours from now).
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround: * Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
Or, apply the code workarounds below for your application.
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
Once you have submitted your Android app to the Play Store for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
ss...@google.com <ss...@google.com>
ss...@google.com <ss...@google.com>
de...@pulsepoint.org <de...@pulsepoint.org> #503
jo...@gmail.com <jo...@gmail.com> #504
Is there any harm/performance considerations for leaving the workaround code indefinitely to run on every single application onCreate?
ah...@google.com <ah...@google.com>
en...@google.com <en...@google.com> #505
Description:
# Android
The updates to Google Play Services to fix the crash is now available to all devices with Google Play Services version 17.4.55 and newer. End users' devices need to download and apply the updates. There will be no change to the version number of Google Play Services on the device after the update is installed.
We continue to see crash rates of Android Maps SDK v2, which is included in Google Play Services, decrease significantly.
If your app uses Android Maps SDK v2 and you have not updated your app with the client-side code workarounds mentioned below, please monitor your app's crash rate. If the crash rate does not decrease, we recommend you to apply the workarounds and update your app.
If your app uses Android Maps SDK v2 and you have already updated your app with the workarounds, no further action is required. The Google Play Services update will not have bad effects on your app.
If your app uses the Premium Plan Android Maps SDK v2 or Android Maps SDK v3 beta (static libraries), we still highly recommend you to roll out the workarounds via an update to your app.
If you update your app but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
Some application developers inquired about 1-star reviews in the Google Play Store left by end-users due to crashes. We took note of those concerns and have been in discussion internally about the proper way to address those. Please note that it may not be possible for us to remove reviews in a way that satisfies Google Play's policy. In the meantime, we have confirmed that applications should not be automatically removed from the Google Play store due to negative review. It's also worth noting that any corrective measures taken on our part to restore review rating will eventually be overwritten with time, as we consider the most recent reviews when calculating the average rating:
# iOS
Developers on iOS need to update and publish their app with the code workarounds communicated here.
We are not able to ask Apple on developers behalf to expedite application reviews. After deploying the workaround in your app, please contact Apple directly.
----
We will cover pending questions and suggestions in future updates and an incident report that we will publish later. We continue to monitor this public issue, so please keep your feedback coming.
Thank you to everyone for your continued patience. We will provide the next update here by Wednesday, 2020-04-29 12:00 US/Pacific (~12 hours from now).
Diagnosis: Crash of the Google Maps Platform mobile SDKs (iOS + Android) at load.
Workaround:
* Clear the affected app's data (not just the cache), or uninstall then reinstall the affected app(s).
Or, apply the code workarounds below for your apps.
* Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
# Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
# Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
* Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
# Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
# Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
The workarounds provided here covers all available flavors and versions of our SDKs for Android. To clarify further:
* Applications that use Maps Android SDK v2 should only need to delete one file: ZoomTables.data.
* Applications that use Maps Android SDK v3 beta should only need to delete one file, either `DATA_ServerControlledParametersManager.data.v1. + getBaseContext().getPackageName())` or `DATA_ServerControlledParametersManager.data. + getBaseContext().getPackageName())`
Once you have submitted your Android app to the Play Store for review, you can file a Maps Support case if you would like us to help expedite its approval. Please make sure to include your application's Package ID in your case.
as...@google.com <as...@google.com>
co...@protonmail.com <co...@protonmail.com> #506
Looks like the play services update worked for me!
da...@gmail.com <da...@gmail.com> #507
I just found out about this yesterday and pushed a new version of the app with a workaround.
We just got "lucky" covid lockdown made our app mostly useless to people and so very few were impacted by the bug (which is also the reason I didn't notice before). It wasn't easy to track it down to this issue, I only managed thanks to correlating the date it started to show up as crashes in Firebase with a twit and then through stack overflow i found the link to this issue.
This bug main message doesn't actually contain the stacktrace of the issue and the title doesn't contain the error, which makes it harder to find.
With an issue of this magnitude I think it would have been a good idea to email accounts with apps using Google Maps API to warn them of the issue and the need for the workaround.
da...@gmail.com <da...@gmail.com> #508
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException
length=1818; index=1818
Fatal Exception: java.lang.ArrayIndexOutOfBoundsException: length=1818; index=1818
at com.google.maps.api.android.lib6.gmm6.vector.gl.buffer.d.a(d.java:9)
at com.google.maps.api.android.lib6.gmm6.vector.gl.af.a(af.java:10)
at com.google.maps.api.android.lib6.gmm6.vector.gl.ag.a(ag.java:108)
at com.google.maps.api.android.lib6.gmm6.vector.t.a(t.java:59)
at com.google.maps.api.android.lib6.gmm6.api.s.a(s.java:19)
at com.google.maps.api.android.lib6.gmm6.api.p.a(p.java:19)
at com.google.maps.api.android.lib6.gmm6.vector.bt.a(bt.java:179)
at com.google.maps.api.android.lib6.gmm6.vector.av.run(av.java:60)
It happened only once on a HUAWEI Y6 2019 running Android 9. Will report if more occur. The regressed issue might not be actually regressed one. It could be that i wrongly closed an issue that is not related to the one that happened on Thursday.
EDIT: Nevermind, im almost certain it is not related to the last Thursdays incident.
an...@google.com <an...@google.com> #509
Summary
Google Maps SDK thread crashes App (ArrayIndexOutOfBoundsException) - Solution Offered
Description
On April 23 2020 starting at 11:30 PDT, Google served for 4 hours an update to the configuration of a Maps mobile component, triggering crashes in Maps SDKs for Android and iOS. Applications on devices that downloaded this version of the configuration (during the outage period) were vulnerable to the crash. Workaround solutions are offered for Maps SDKs for Android and iOS.
Maps SDK for Android
Maps SDK for Android v2 (included in Google Play Services)
The updates to Google Play Services to fix the crash has been published to all devices with Google Play Services version 17.4.55 and newer. There is no change to the version number of Google Play Services on the device after the update is installed. No action is required from developers or end users to receive the updated Maps module; however, developers can verify that the module is present on a given device with the following adb command:
adb shell dumpsys activity provider com.google.android.gms.chimera.container.GmsModuleProvider
You should see the line Module Set ID: maps
listed in the Module Sets
section.
Module Set ID: maps, Module Set Version: 2015120015120000
The crash rates of Maps SDK for Android v2 are back to normal.
As of now, if you have not updated your app with the client-side code workarounds mentioned below, you do not need to take further action.
If you have already updated your app with the workarounds, you can remove the workaround in a subsequent update of your app (but keeping the workaround is safe).
Premium Plan Maps SDK for Android v2 or Maps SDK for Android v3 beta (static libraries)
If your app uses the Premium Plan Maps SDK for Android v2 or Maps SDK for Android v3 beta (static libraries), and is still experiencing crashes, we still highly recommend you to roll out the workarounds below via an update to your app. As your application is loading a static version of the SDK which is vulnerable to the bad data being stored on some devices, only an update to your application can solve the problem.
Play Store review approvals
If you update your app but experience Play Store review approvals delays, please file a support case with your app’s Package ID:
Negative reviews in the Google Play Store
Some application developers inquired about 1-star reviews in the Google Play Store left by end-users due to crashes. Only comments that violate Google Play's policy [1] can be removed. You can also flag abusive reviews in the Play Console [2]. Applications will not be automatically removed from the Google Play store due to negative reviews. It's also worth noting that the calculation of your overall app review rating favors recent reviews, which means that your rating will recover to pre-incident levels over time.
[1]
[2]
Maps SDK for iOS
Crash rates on iOS are back to normal. If your application is still experiencing crashes, you need to update and publish your app with the code workarounds communicated here.
For questions about deploying or expediting your application in the Apple App Store, please contact Apple directly.
With this update, we are closing this issue. Thank you to everyone for your patience. Our team is performing an in-depth internal investigation of this incident; as soon as possible, we will publish our analysis (in approximately a week). In the meantime, if you have any questions, or are still experiencing problems, please
Workarounds:
-
End users on Android can clear the affected app's data (not just the cache).
-
End users on iOS can uninstall then reinstall the affected app(s).
-
App Developers can apply the code workarounds below in order to solve the issue for all their end users.
Code workaround for iOS:
Recommended placement for the code is before GMSServices initialization in the application(_:didFinishLaunchingWithOptions:) (Swift) or application:didFinishLaunchingWithOptions: (Objective-C) method. Specifically:
Swift:
let key = "GoogleMapsServerControlledParamsKey_bug_154855417"
if !UserDefaults.standard.bool(forKey: key) {
let urls = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)
if urls.count > 0 {
let paramUrl = urls[0].appendingPathComponent("com.google.GoogleMaps/ServerControlledParams", isDirectory: false)
try? FileManager.default.removeItem(at: paramUrl)
}
UserDefaults.standard.set(true, forKey: key)
}
Objective-C:
NSString *key = @"GoogleMapsServerControlledParamsKey_bug_154855417";
BOOL keyExists = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!keyExists) {
NSArray<NSURL *> *array =
[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if (array.count > 0) {
NSURL *url =
[array[0] URLByAppendingPathComponent:@"com.google.GoogleMaps/ServerControlledParams"
isDirectory:NO];
if (url) {
[[NSFileManager defaultManager] removeItemAtURL:url error:NULL];
}
}
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:key];
}
Code workaround for Android:
The recommended placement for the code is in Application.onCreate():
Java
try {
SharedPreferences hasFixedGoogleBug154855417 = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE);
if (!hasFixedGoogleBug154855417.contains("fixed")) {
File corruptedZoomTables = new File(getFilesDir(), "ZoomTables.data");
File corruptedSavedClientParameters = new File(getFilesDir(), "SavedClientParameters.data.cs");
File corruptedClientParametersData =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data."
+ getBaseContext().getPackageName());
File corruptedClientParametersDataV1 =
new File(
getFilesDir(),
"DATA_ServerControlledParametersManager.data.v1."
+ getBaseContext().getPackageName());
corruptedZoomTables.delete();
corruptedSavedClientParameters.delete();
corruptedClientParametersData.delete();
corruptedClientParametersDataV1.delete();
hasFixedGoogleBug154855417.edit().putBoolean("fixed", true).apply();
}
} catch (Exception e) {
}
Kotlin
try {
val sharedPreferences = getSharedPreferences("google_bug_154855417", Context.MODE_PRIVATE)
if (!sharedPreferences.contains("fixed")) {
val corruptedZoomTables = File(filesDir, "ZoomTables.data")
val corruptedSavedClientParameters = File(filesDir, "SavedClientParameters.data.cs")
val corruptedClientParametersData = File(filesDir, "DATA_ServerControlledParametersManager.data.${packageName}")
val corruptedClientParametersDataV1 = File(filesDir, "DATA_ServerControlledParametersManager.data.v1.${packageName}")
corruptedZoomTables.delete()
corruptedSavedClientParameters.delete()
corruptedClientParametersData.delete()
corruptedClientParametersDataV1.delete()
sharedPreferences.edit().putBoolean("fixed", true).apply()
}
} catch (exception: Exception) {
}
The workarounds provided here covers all available flavors and versions of our SDKs for Android. To clarify further (in case you released an earlier version of the workaround that did not delete as many files):
- Applications that use Maps Android SDK v2 should only need to delete one file: ZoomTables.data.
- Applications that use Maps Android SDK v3 beta should only need to delete one file, either
DATA_ServerControlledParametersManager.data.v1. + getBaseContext().getPackageName())
orDATA_ServerControlledParametersManager.data. + getBaseContext().getPackageName())
ss...@google.com <ss...@google.com>
en...@google.com <en...@google.com> #510
We will publish an analysis of this incident once we have completed our internal investigation. Please see
We thank you for your patience while we've worked on resolving the issue.
ha...@gmail.com <ha...@gmail.com> #511
for #509
Module Set ID: maps, Module Set Version: 2015120015040000
ph...@tryfi.com <ph...@tryfi.com> #512
ja...@gmail.com <ja...@gmail.com> #513
mi...@directed.com <mi...@directed.com> #514
ah...@google.com <ah...@google.com> #515
ag...@t-sciences.com <ag...@t-sciences.com> #516
jo...@gmail.com <jo...@gmail.com> #517
le...@gmail.com <le...@gmail.com> #518
What's status of this issue? Does it fix in the latest SDK?
pi...@deliveroo.co.uk <pi...@deliveroo.co.uk> #519
xi...@priceline.com <xi...@priceline.com> #520
[Deleted User] <[Deleted User]> #521
ge...@gmail.com <ge...@gmail.com> #522
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
at com.google.maps.api.android.lib6.gmm6.vector.gl.aj.b(:com.google.android.gms.dynamite_mapsdynamite@221820083@22.18.20 (150408-0):2)
at com.google.maps.api.android.lib6.gmm6.vector.gl.aj.<init>(:com.google.android.gms.dynamite_mapsdynamite@221820083@22.18.20 (150408-0):2)
at com.google.maps.api.android.lib6.gmm6.vector.gl.g.<init>(:com.google.android.gms.dynamite_mapsdynamite@221820083@22.18.20 (150408-0):18)
at com.google.maps.api.android.lib6.gmm6.vector.bs.d(:com.google.android.gms.dynamite_mapsdynamite@221820083@22.18.20 (150408-0):14)
at com.google.maps.api.android.lib6.gmm6.vector.av.run(:com.google.android.gms.dynamite_mapsdynamite@221820083@22.18.20 (150408-0):44)
re...@google.com <re...@google.com> #523
Is raised in issue
pi...@zomato.com <pi...@zomato.com> #524
mi...@google.com <mi...@google.com> #525
Please kindly
The issue reported here was
Description
Summary: Google Maps SDK thread crashes App (ArrayIndexOutOfBoundsException) -- Solution Offered.
Description: We are experiencing a crash with Google Maps mobile SDKs beginning around Thursday, 2020-04-23 11:30 US/Pacific. We have applied server-side mitigations and provided recommended customer-code mitigations. Crashes are back to normal.
For the latest status on this incident and official guidance from Google on this issue, please see comment#509 below.
We have completed our internal investigation of this incident. Details can be found in the report attached to comment#515 below. If you have follow-up questions on this issue, please contact us: https://developers.google.com/maps/support/#creating-a-support-case