mapsplugin / cordova-plugin-googlemaps

Google Maps plugin for Cordova
Apache License 2.0
1.66k stars 918 forks source link

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

Open ebhsgit opened 3 years ago

ebhsgit commented 3 years ago

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

OS: (check one with "x")

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

sergip76 commented 3 years ago

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

kozuch commented 3 years ago

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.

ebhsgit commented 3 years ago

@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

kozuch commented 3 years ago

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 cordova-android@9.1.0 and can not use latest cordova-android@10.0.0 which needs Android Gradle Plugin (AGP) version 4.2.2. Thank you!