Assigned
Status Update
Comments
ra...@google.com <ra...@google.com> #2
Solved for now by adding @SuppressWarnings
. We'll need to revisit if this pops up again.
Ideas include:
- Whack-a-mole overrides via NullAway Library Models
- Have an custom extract_only=true on the upstream aar targets so that they cannot be accidentally used, and then use the extracted classes.jar files only in the errorprone classpath.
w....@gmail.com <w....@gmail.com> #3
I also get this error when tapping on a marker which should show an overlay
'gmscore::vector::TextureAtlasElement::height:'
Sometimes it happens and sometimes not. The overlay which is shown, shows a graph with dynamic loaded graph data depending on which marker was tapped.
If the crash happened one time, only a reinstall fixes the problem.
One interesting fact is, i managed it to force it in debug mode and on every tap on a marker, the app crashed.
Starting the same app without debugger worked fine.
Deleting the app and reinstalling it via debugger fixed the issue until i managed to force it again without any noticeable pattern to reproduce..
'gmscore::vector::TextureAtlasElement::height:'
Sometimes it happens and sometimes not. The overlay which is shown, shows a graph with dynamic loaded graph data depending on which marker was tapped.
If the crash happened one time, only a reinstall fixes the problem.
One interesting fact is, i managed it to force it in debug mode and on every tap on a marker, the app crashed.
Starting the same app without debugger worked fine.
Deleting the app and reinstalling it via debugger fixed the issue until i managed to force it again without any noticeable pattern to reproduce..
Description
When adding a GMSGroundOverlay with the certain image size Google Map for iOS may cause the app crash that ends up in the need to re-install the app as whole Google map component stops working properly, is broken.
The crash happens here:
gmscore::vector::TextureAtlasElement::TextureAtlasElement(gmscore::base::reffed_ptr<gmscore::vector::GLTextureAtlasIcon> const&) ()
What should happen instead?
- GMSMapView should handle any case, where user input is involved, gracefully. We don't have anything in the documentation that would limit the size of the image for the GMSGroundOverlay.
- If you know the limits that you can handle correctly, please document it, so we can downsample to it. Looks like MKMapView is doing downsampling itself, which might be the right thing to do as the size to downsample to can be an implementation detail of yours.
- Even if you document the limits, but we don't downsample and you don't downsample, please handle this gracefully, e.g. don't show the overlay. Or crash in the debug mode, but don't crash in the release mode, just don't show the image.
- Even if you crash, please don't crash in a way that corrupts the app or Google Maps data, so it doesn't work properly after the app restart.
Link to the Demo application[1] that reproduces the problem:
Steps to reproduce the problem:
1. In your GMSGroundOverlay sample use the image that has more or equal of 12 million points (3000x4000). The problem happens on after 11 million points, so using 12 as an example.
2. Run the sample code with such an image for the ground overlay.
3. See the app crash and cause the corruption of the Google Maps SDK data.
Operating system version:
iOS 15.5
Google Maps SDK for iOS version:
6.2.1
Hardware model:
iPhone 12 Pro Max
-------------------------------------------------------------------
[1] You can fork
P.S. Google maps SDK has been always a hallmark of map programming for me. Now I'm quite on a verge of removing Google maps from my apps and only keeping Apple maps. If this is the new level of documenting/programming/QA quality for the Google Maps SDK and it stays this way, please let us honestly know, so we don't put Google maps on any critical path in iOS. Is it dying? You are keeping loose ends everywhere, querying for telephony enormous amount of times, not clearing memory in many places when map view is removed that may cause memory pushes and app eviction while it is in the background. Looks to me as if Google maps for iOS has been given up on.