Status Update
Comments
uc...@google.com <uc...@google.com>
ri...@google.com <ri...@google.com> #2
at android.graphics.Canvas.<init>(Canvas.java:113)
at com.google.maps.api.android.lib6.impl.a.a(:com.google.android.gms.policy_maps_core_dynamite@231710105@231710102065.533527097.533527097:1)
at com.google.maps.api.android.lib6.phoenix.be.run(:com.google.android.gms.policy_maps_core_dynamite@231710105@231710102065.533527097.533527097:2)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8757)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
AND
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.isMutable()' on a null object reference
at android.graphics.Canvas.<init>(Canvas.java:113)
at com.google.maps.api.android.lib6.impl.a.a(:com.google.android.gms.policy_maps_core_dynamite@231112107@231112103065.517507265.517507265:1)
at com.google.maps.api.android.lib6.phoenix.be.run(:com.google.android.gms.policy_maps_core_dynamite@231112107@231112103065.517507265.517507265:2)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7884)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
ri...@google.com <ri...@google.com> #3
Thank you for posting.
We'll need some more details to troubleshoot this issue - please provide the following, in particular steps to reproduce the issue:
-
Put together a simplified reproduction case (
http://sscce.org/ ) and add it to a git hosting provider (e.g. github, bitbucket, etc)? The easiest way to do this might be to fork the Google Maps Android API Samples Repository and modify one of the existing demo activities:https://github.com/googlemaps/android-samples -
List steps to reproduce the problem
- Maps SDK client library version (used to build your app):
- Maps renderer (Latest or Legacy):
- Devices you have verified this issue on:
- Google Play Services version on the device:
- Android version:
- Manufacturer and model:
- Was this working correctly on a previous version of Google Play Services? (If yes, which client library and SDK version?)
- Attach the following:
- screenshots
- sample code
- an APK if possible.
- If the problem exhibits itself in a released version of your app on the Play Store, optionally link us to the app, and explain how to reproduce the issue in your app.
ga...@google.com <ga...@google.com> #4
Maps SDK client library version - 18.1.0
Maps renderer- MapsInitializer.Renderer.LATEST
Google Play Services version on the device: NA
Android version: Android 13, Android 12, Android 11
Manufacturer and model: samsung Galaxy S22 Ultra, samsung Galaxy S23 Ultra, Galaxy Z Fold4, Google Pixel 7 pro, Pixel 6 Pro, Pixel 6
Was this working correctly on a previous version of Google Play Services? (If yes, which client library and SDK version?) : Yes,
This issue arising when I integrated, -
MapsInitializer.initialize(applicationContext, MapsInitializer.Renderer.LATEST, this)
and taken callback in -
override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {
when (renderer) {
MapsInitializer.Renderer.LATEST -> Timber.d("MichelinGuideApplication = %s", "The latest version of the renderer is used.")
MapsInitializer.Renderer.LEGACY -> Timber.d("MichelinGuideApplication = %s", "The legacy version of the renderer is used.")
}
}
It is happening while taking snapshot from map.
App Name:
am...@google.com <am...@google.com>
da...@gmail.com <da...@gmail.com> #5 Restricted+
sh...@adobe.com <sh...@adobe.com> #6
da...@gmail.com <da...@gmail.com> #7
can't determine specific steps to reproduce, but I see quite some of those crashes in Firebase.
am...@google.com <am...@google.com> #8
Thank you for the updates in this issue.
We have escalated this issue to our specialist for further evaluation. Rest assured that we'll get back for the updates.
da...@gmail.com <da...@gmail.com> #9
Thank you for the report.
Based on the stack traces, we can confirm one scenario that reproduces the crash: an app calls GoogleMap#snapshot
The Legacy renderer doesn't crash in this scenario. However, we notice that it does not produce a snapshot if the method is called while the app is in the background, and produces one as soon as the app comes to the foreground.
We are investigating the best way to resolve this issue in the Latest renderer. In the mean time, one possible workaround is to modify your app to detect if it is in the foreground before taking a snapshot, for example by calling ProcessLifecycleOwner.get().lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)
mc...@ebay.com <mc...@ebay.com> #10
However, I tried it out and unfortunately, the crash immediately popped up again on a newer version of the app - while building the pre-launch report in Google Play.
Could it be because the snapshot gathering is started while the app is in the foreground, but then the app is minimized along the way?
mc...@ebay.com <mc...@ebay.com> #11
#10: I think that is possible, although so far I find the snapshot process does not take that long.
We see an app that regularly (e.g. every X seconds) takes a snapshot. It crashes when it is put on the background. Is your app implementing something like this?
ra...@spotify.com <ra...@spotify.com> #12
No, we captured the snapshot when the app is foreground only as per implementation. May be minimise the app results put on the background and crashed at the same time while or after captured the snapshot.
am...@google.com <am...@google.com>
am...@walmart.com <am...@walmart.com> #13
Also, the fragment with the map can be invisible during the snapshot call (being on another tab). Could that cause an issue?
sg...@google.com <sg...@google.com> #14
#13:
Also, the fragment with the map can be invisible during the snapshot call (being on another tab). Could that cause an issue?
Quickly looking at our code, I think that is possible. I'll try to reproduce that to confirm.
Description
Dynamic feature modules couldn't generate correctly with AGP 7.3 and R8 3.3.79.
We find the way the intermediate jars for dynamic features under (/build/intermediates/module_and_runtime_deps_classes/release/) are generated is different in AGP 7.3. In 7.2 that file contains just dynamic feature stuff, in 7.3 is seems to contain all code from the app. So it fails minifyReleaseWithR8 task in our app in release build. Pls check below stack trace: DataBindingCallbacks.class is a class we defined in our App module, but it reports duplicate in dynamic feature module.
Stack trace