Error java.lang.StackOverflowError: stack size 8MB

0

I have an error that jumps me when wanting to show the infowindow custom of google maps, the method showInfoWindow is the one that makes jump the error.

Inside the class InfoWindowMarer when debug note that you are calling too many times the methods overwritten getInfoContents and getInfoWindow of the class InfoWindowAdapter , in another view I am using it to show and exit correctly, When I make the call to a rest service, in the implementation of the response I implement the following code:

runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    map.setInfoWindowAdapter(new InfoWindowMarker(getApplicationContext(), markerDesde, viaje.getPasajero()));
                    animateCameraToPoint(viaje.getPuntoDesde());
                    markerDesde.showInfoWindow();
                }
            });

In the onMapReady method with the variable markerDesde the following is done:

MarkerOptions markerOptionsDesde = new MarkerOptions().position(viaje.getPuntoDesde()).title(getString(R.string.desde));
    //markerOptionsDesde.draggable(true);
    markerOptionsDesde.flat(true)
            .icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_radio_button_unchecked_black_24dp))
            .anchor(0.5f, 0.5f);
    markerDesde = map.addMarker(markerOptionsDesde);
markerHasta = map.addMarker(markerOptionsHasta);
    CameraPosition cameraPosition = new CameraPosition.Builder().target(midPoint(markerDesde.getPosition().latitude, markerDesde.getPosition().longitude, markerHasta.getPosition().latitude, markerHasta.getPosition().longitude))
            .zoom(14) // Sets the zoom
            .bearing(angleBteweenCoordinate(markerDesde.getPosition().latitude, markerDesde.getPosition().longitude, markerHasta.getPosition().latitude, markerHasta.getPosition().longitude)) // Sets the orientation of the camera to
            .tilt(30) // Sets the tilt of the camera to 30 degrees
            .build();
    map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));

Then in this method a query is also made to the api directions to draw a polyline between 2 points.

onMapReady is called when the Activity is started, the problem occurs when I press a button that queries a rest service, in the answer I try to show the marker and it explodes there.

Stacktrace:

11-03 22:05:56.991 14532-14532/com.system.sumo.retaxi E/UncaughtException: java.lang.StackOverflowError: stack size 8MB
at android.os.Parcel.obtain(Parcel.java:314)
at vw.a(:com.google.android.gms.DynamiteModulesB:88)
at maps.ad.G.a(Unknown Source)
at maps.ad.G.a(Unknown Source)
at maps.D.c.a(Unknown Source)
at maps.D.d.c(Unknown Source)
at maps.ad.S.g(Unknown Source)
at abw.onTransact(:com.google.android.gms.DynamiteModulesB:145)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.model.internal.zzf$zza$zza.showInfoWindow(Unknown Source)
at com.google.android.gms.maps.model.Marker.showInfoWindow(Unknown Source)
at com.system.sumo.retaxi.utils.maps.ImageRefresherMarker.onSuccess(ImageRefresherMarker.java:17)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:657)
at com.system.sumo.retaxi.utils.maps.InfoWindowMarker.getInfoContents(InfoWindowMarker.java:42)
at com.google.android.gms.maps.GoogleMap$7.zzi(Unknown Source)
at com.google.android.gms.maps.internal.zzd$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380)
at vw.b(:com.google.android.gms.DynamiteModulesB:112)
at maps.ad.G.a(Unknown Source)
at maps.ad.G.a(Unknown Source)
at maps.D.c.a(Unknown Source)
at maps.D.d.c(Unknown Source)
at maps.ad.S.g(Unknown Source)
at abw.onTransact(:com.google.android.gms.DynamiteModulesB:145)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.model.internal.zzf$zza$zza.showInfoWindow(Unknown Source)
at com.google.android.gms.maps.model.Marker.showInfoWindow(Unknown Source)
at com.system.sumo.retaxi.utils.maps.ImageRefresherMarker.onSuccess(ImageRefresherMarker.java:17)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:657)
at com.system.sumo.retaxi.utils.maps.InfoWindowMarker.getInfoContents(InfoWindowMarker.java:42)
at com.google.android.gms.maps.GoogleMap$7.zzi(Unknown Source)
at com.google.android.gms.maps.internal.zzd$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380)
at vw.b(:com.google.android.gms.DynamiteModulesB:112)
at maps.ad.G.a(Unknown Source)
at maps.ad.G.a(Unknown Source)
at maps.D.c.a(Unknown Source)
at maps.D.d.c(Unknown Source)
at maps.ad.S.g(Unknown Source)
at abw.onTransact(:com.google.android.gms.DynamiteModulesB:145)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.model.internal.zzf$zza$zza.showInfoWindow(Unknown Source)
at com.google.android.gms.maps.model.Marker.showInfoWindow(Unknown Source)
at com.system.sumo.retaxi.utils.maps.ImageRefresherMarker.onSuccess(ImageRefresherMarker.java:17)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:657)
at com.system.sumo.retaxi.utils.maps.InfoWindowMarker.getInfoContents(InfoWindowMarker.java:42)
at com.google.android.gms.maps.GoogleMap$7.zzi(Unknown Source)
at com.google.android.gms.maps.internal.zzd$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380)
at vw.b(:com.google.android.gms.DynamiteModulesB:112)
at maps.ad.G.a(Unknown Source)
at maps.ad.G.a(Unknown Source)
at maps.D.c.a(Unknown Source)
at maps.D.d.c(Unknown Source)
at maps.ad.S.g(Unknown Source)
at abw.onTransact(:com.google.android.gms.DynamiteModulesB:145)
at android.os.Binder.transact(Binder.java:380)
at com.google.android.gms.maps.model.internal.zzf$zza$zza.showInfoWindow(Unknown Source)
at com.google.android.gms.maps.model.Marker.showInfoWindow(Unknown Source)
at com.system.sumo.retaxi.utils.maps.ImageRefresherMarker.onSuccess(ImageRefresherMarker.java:17)
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:657)
at com.system.sumo.retaxi.utils.maps.InfoWindowMarker.getInfoContents(InfoWindowMarker.java:42)
at com.google.android.gms.maps.GoogleMap$7.zzi(Unknown Source)
at com.google.android.gms.maps.internal.zzd$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:380)
at vw.b(:com.google.android.gms.DynamiteModulesB:112)
at maps.ad.G.a(Unknown Source)
at maps.ad.G.a(Unknown Source)
at maps.D.c.a(Unknown Source)
at maps.D.d.c(Unknown Source)
    
asked by Emanuel Duprat 04.11.2016 в 02:30
source

1 answer

1

When you find an error: java.lang.StackOverflowError means you have a problem with recursive calls of the methods. Verify each of the calls within your code.

    
answered by 04.11.2016 в 05:57