У меня был старый Android-проект, который я оставил, и я решил его поднять. Но Im получает ошибку «Не удается разрешить метод getMap()». Я пробовал делать что-то here, here и here, но я все равно застрял. Я знаю, что Im должен использовать getMapAsync, но я предполагаю, что Im не смог реализовать это с помощью MapViewНе удается разрешить метод getMap() в Google Maps 10.0.1
Я думаю, возможно, это потому, что я использую MapView, а не SupportMapFragment. Я тоже попытался изменить это, но я потерпел неудачу на этом пути.
Вот он зависимостей я хочу использовать или, вернее, им с помощью:
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
У меня есть несколько методов, которые в настоящее время помечены как им с помощью GetMap(), более чем один раз, но ошибка помечено здесь:
GoogleMap map = ((MapView) mRootView.findViewById(R.id.mapview)).getMap();
MapView отображается в следующем:
<com.google.android.gms.maps.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
Im получение следующее сообщение об ошибке:
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)
Это первая функция 4, которые с помощью объекта GoogleMap:
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);
}
}
Ответ в одной из этих ссылок говорит: "Пожалуйста, используйте getMapAsync()". Вы можете просмотреть последнюю документацию по картам Google, чтобы выявить различия в вашей реализации. –
Возможный дубликат [Заменить getMap с помощью getMapAsync] (http://stackoverflow.com/questions/31371865/replace-getmap-with-getmapasync) –