2016-11-05 1 views
0

Ich habe ein Problem mit der MapMapfragment von GoogleMaps in Android.Android Google Maps Zoom nicht nach rechts Standort und Aktivität Absturz bei hoher Häufigkeit Öffnen und Schließen

habe ich diese Methode, die Überschreibung sein:

@Override 
public void onMapReady(GoogleMap googleMap) { 

    gm = googleMap; 
    gm.setMapType(GoogleMap.MAP_TYPE_HYBRID); 
    if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 
     Toast.makeText(getApplicationContext(), getApplicationContext().getResources().getString(R.string.choose_festival_gps_disabled), Toast.LENGTH_SHORT).show(); 
    } else { 
     gm.setMyLocationEnabled(true); 
    } 
    gm.getUiSettings().setZoomControlsEnabled(true); 
    gm.addMarker(new MarkerOptions().position(new LatLng(latitude(), longitude())).title(name())); 
    gm.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(latitude(), longitude()))); 
    gm.animateCamera(CameraUpdateFactory.zoomTo(15)); 

} 

Dann rief ich diese in einer Async Aufgabe:

((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMapAsync(Activity.this); 

Jetzt bekam ich zwei Probleme, habe ich gesucht eine lange Zeit, aber keine Ahnung, wie man es löst:

  1. Die Karte Zoom ist nicht genau zu meinem Standort, vielleicht 5 km nördlich davon.
  2. Wenn ich die Aktivität häufig öffne und schließe, habe ich die folgende schwerwiegende Ausnahme.

    java.lang.NullPointerException: Der Versuch, virtuelle Methode 'Leere com.google.android.gms.maps.MapFragment.getMapAsync (com.google.android.gms.maps.OnMapReadyCallback)' auf ein Null-Objekt aufzurufen Referenz

Antwort

0

1. Die Karte zoomen nicht genau meine Lage ist, vielleicht 5 km nördlich davon.

Sie können auf diese SO thread überprüfen. Es wurde empfohlen, eine LocationSource zu Ihrer GoogleMap hinzuzufügen und auf onLocationChanged Ereignisse zu reagieren. Sie können den Beispielcode here überprüfen.

2. Wenn ich die Aktivität häufig öffne und schließe, habe ich die folgende Tödliche Ausnahme.

Vielleicht versuchen Sie ein Fragment zu finden, bevor es existiert. Oder vielleicht versuchen Sie, aus einem anderen Fragment in der onCreateView()-Methode des Fragments auf das Kartenfragment zuzugreifen. Es wurde in dieser SO post angegeben. Sie sehen auch here, dass dieser Fehler möglicherweise auftritt, wenn Sie eine bestimmte Version der Google Play-Dienste verwenden, der Gradle-Build jedoch die neueste Version auswählt.

Verwandte Themen