Ich hatte ein altes Android-Projekt, das ich zurückgelassen hatte, und ich habe beschlossen, es abzuholen. Aber ich bekomme die "Kann Methode getMap() nicht auflösen" Fehler. Ich habe versucht, was passiert, here, here und here, aber ich bin sowieso stecken geblieben. Ich weiß, ich sollte getMapAsync verwenden, aber ich denke, dass Im das mit MapViewDie Methode getMap() kann in Google Maps 10.0.1 nicht aufgelöst werden.
nicht implementieren kann Ich denke, vielleicht ist es, weil ich MapView und nicht SupportMapFragment. Ich habe versucht, das auch zu ändern, aber ich bin auf dem Weg gescheitert.
Hier sind er Abhängigkeiten Ich möchte mit verwenden, oder besser gesagt IM:
compile 'com.google.android.gms:play-services-maps:10.0.1' //one with error
//compile 'com.google.android.gms:play-services-maps:7.3.0' //one which works
ich ein paar Methoden, die gekennzeichnet werden, wie im der getMap() verwendet, mehr als einmal, aber der Fehler ist hier gekennzeichnet:
GoogleMap map = ((MapView) mRootView.findViewById(R.id.mapview)).getMap();
die MapView in der folgenden angezeigt:
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
im bekommen der folgende Fehler:
12-09 09:14:33.231 15831-15831/com.empire.vince.vokers.yoworld E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.empire.vince.vokers.yoworld, PID: 15831
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.maps.android.clustering.ClusterManager.clearItems()' on a null object reference
at com.empire.vince.vokers.yoworld.mafragments.MapFragment.renderView(MapFragment.java:465)
at com.empire.vince.vokers.yoworld.mafragments.MapFragment.onMapReady(MapFragment.java:433)
at com.google.android.gms.maps.MapView$zza$1.zza(Unknown Source)
at com.google.android.gms.maps.internal.zzt$zza.onTransact(Unknown Source)
at android.os.Binder.transact(Binder.java:387)
at zu.a(:com.google.android.gms.DynamiteModulesB:82)
at maps.ad.t$5.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:234)
at android.app.ActivityThread.main(ActivityThread.java:5526)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Dies ist die erste Funktion von 4, die das Objekt GoogleMap wurden unter Verwendung von:
private void gimmeView()
{
// reference
//final GoogleMap map = ((MapView) mRootView.findViewById(R.id.mapview)).getMap();
final AdView adView = (AdView) mRootView.findViewById(R.id.adview);
// map
if(mGoogleMap!=null)
{
// add pois
mGoogleMap.clear();
mClusterManager.clearItems();
for(PoiModel poi : mPoiList)
{
mClusterManager.addItem(poi);
}
mClusterManager.cluster();
}
// admob
if(YoWorldConfig.ADMOB_MAP_BANNER && NetworkManager.isOnline(getActivity()))
{
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice(getString(R.string.admob_test_device_id))
.build();
adView.loadAd(adRequest);
adView.setVisibility(View.VISIBLE);
}
else
{
adView.setVisibility(View.GONE);
}
}
Die Antwort in einen dieser Links sagt: "Bitte benutzen Sie getMapAsync()". Möglicherweise möchten Sie die neueste Google Maps-Dokumentation scannen, um Unterschiede in Ihrer Implementierung zu erkennen. –
Mögliches Duplikat von [getMap mit getMapAsync ersetzen] (http://stackoverflow.com/questions/31371865/replace-getmap-with-getmapasync) –