cordova-plugin-googlemaps icon indicating copy to clipboard operation
cordova-plugin-googlemaps copied to clipboard

[Android] When app is compiled with AGP 4.1.3 ('com.android.tools.build:gradle:4.1.3'), the map is blank

Open ebhsgit opened this issue 3 years ago • 4 comments

I'm submitting a ... (check one with "x")

  • [ ] question
  • [ X ] any problem or bug report

OS: (check one with "x")

  • [ X ] Android
  • [ ] iOS
  • [ ] Browser

cordova information: (run $> cordova plugin list)

latest cordova-android master branch

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)

@ionic-native/core : 4.20.0
@ionic-native/google-maps : ^2.7.0

Cause I've done some investigation and have isolated the issue to be caused by the change in cordova-android dependency of AGP from version 4.0.x to 4.1.3

Release notes for AGP https://developer.android.com/studio/releases/gradle-plugin#4-1-0

Current behavior:

App starts with map being blank/white.

Expected behavior:

Shows the map

Screen capture or video record:

Related code, data or error log (please format your code or data):

Most the time no errors in logcat

Occasionally the following error is shown in logcat

 java.lang.AssertionError
     at org.apache.cordova.CordovaPlugin.privateInitialize(CordovaPlugin.java:52)
     at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:178)
     at org.apache.cordova.PluginManager.exec(PluginManager.java:129)
     at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
     at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
     at android.os.MessageQueue.nativePollOnce(Native Method)
     at android.os.MessageQueue.next(MessageQueue.java:326)
     at android.os.Looper.loop(Looper.java:160)
     at android.os.HandlerThread.run(HandlerThread.java:65)

Test project that shows the issue

https://github.com/ebhsgit/gmap-test/tree/android-9.1

You will need to edit config.xml to put in your Map API key

Please share your project files on Github or others(Bitbucket, Gitlabs...etc).
If you don't want to share your project files, please create a demo project, then share it.

Screen captures, and/or native logs(such as Logcat, xcode logs) are appreciate.

Giving much information, you are waiting time is less.
Thank you for your cooperation.

Support this plugin activity

I appreicate if you give me a beer :beer: from here

ebhsgit avatar May 21 '21 06:05 ebhsgit

I have this problem. Which android platform release do I have to install to solve it?

sergip76 avatar Jun 01 '21 09:06 sergip76

I also have the issue with blank map. Works when AGP 4.0.2 is used, but is broken with AGP 4.1.x and above.

kozuch avatar Jul 27 '21 14:07 kozuch

@sergip76

It's not related to your target Android version. It's cause by change from 4.0.x to 4.1.x of AGP (Android Gradle Plugin) Prior to AGP 4.1.+, assert keyword was not enforced.

Latest Cordova-Android started using AGP 4.1.+, which is causing the AssertionError

ebhsgit avatar Jul 27 '21 22:07 ebhsgit

I have not tested fix #2872 but if it works please try to merge it so that we can use official release of this plugin and do not have to hack the solution ourselves in code. Without fix we are stuck to [email protected] and can not use latest [email protected] which needs Android Gradle Plugin (AGP) version 4.2.2. Thank you!

kozuch avatar Aug 04 '21 13:08 kozuch