2016-12-08 7 views
0

GoogleマップでメソッドGetMapリクエストを()を解決することはできません。しかし、私は "getMap()メソッドを解決できません"エラーを取得しています。私はhereherehereをやってみましたが、とにかく止まってしまいました。私はImはgetMapAsyncを使用することになって知っているが、私はImはMapViewのは、私は私が残した古いAndroidのプロジェクトを持っていたし、私はそれを拾うことにしました10.0.1

と私は多分そのImは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リクエストを(使用してイムとして、フラグが立てられているいくつかのメソッド)を持っていますが、エラーは次のとおりです。ここで

は、彼は私が使用したり、むしろ使用してイムしたい依存関係していますここでフラグが付けられ:

<com.google.android.gms.maps.MapView 
     android:id="@+id/mapview" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

Imが取得:

GoogleMap map = ((MapView) mRootView.findViewById(R.id.mapview)).getMap(); 

のMapViewは、以下に表示されています次のエラー:

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) 

これは、Googleマップのオブジェクトを使用していた4の第一の機能である:ここでは、GoogleMapMapViewをキャストしないでください

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); 
    } 
} 
+0

答えをこれらのリンクのいずれかに ")(getMapAsyncを使用してください" と言います。あなたはあなたの実装 –

+0

が重複する可能性の違いを発見する最新のGoogleマップのドキュメントをスキャンすることをお勧めします[getMapAsyncでGetMapリクエストを置き換え](http://stackoverflow.com/questions/3137186​​5/replace-getmap-with-getmapasync) –

答えて

0

はあなたが何をすべきかです:

private GoogleMap mGoogleMap; 

OnCreate方法:

mMapView = (MapView) view.findViewById(R.id.mapview); 
mMapView.onCreate(savedInstanceState); 
mMapView.onResume(); 
mMapView.getMapAsync(this); 

OnMapReadyCallbackを実装します。

@Override 
public void onMapReady(GoogleMap googleMap) { 
mGoogleMap = googleMap; 
if (mGoogleMap != null) { 
    // Add your functions to GoogleMap 
} 
} 
+0

は、万一明示的にMapViewライフサイクルメソッドを呼び出すことになりますか? –

+0

わかりません。しかし、http://stackoverflow.com/questions/13812988/android-maps-v2-mapview-inside-custom-fragment-npeのようにNPEを避けるためには、私はあなたがすべきだと思います。 –

+0

私はいつもSupportMapFragmentが使われているのを見たことがあると思います。それはおそらくそれを処理するでしょう –

関連する問題

 関連する問題