2

我在執行片段中的以下代碼時正在執行numm指針異常。Google Map Api v2錯誤

MapFragment mapFragment = MapFragment.newInstance(); 
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); 
fragmentTransaction.add(R.id.container1, mapFragment); 
fragmentTransaction.commit(); 
mGoogleMap=mapFragment.getMap(); 
mGoogleMap.addMarker(new MarkerOptions().draggable(true).position(new LatLng(22.03, 72.56)).title("hello world").snippet("Ahmedabad").icon(BitmapDescriptorFactory.fromResource(R.drawable.wifi))); 

03-01 15:59:49.370:E/AndroidRuntime(12577): 顯示java.lang.NullPointerException 03-01 15:59:49.370:致 E/AndroidRuntime(12577) :at com.tfick.fragment.PoiFragment.onCreateView(PoiFragment.java:64)03-01 15:59:49.370:E/AndroidRuntime(12577):at android.app.FragmentManagerImpl.moveToState(FragmentManager.java: 829) 03-01 15:59:49.370:E/AndroidRuntime(12577):at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035) 03-01 15:59:49.370:E/AndroidRunti (12577):at android.app.BackStackRecord.run(BackStackRecord.java:635)03-01 15:59:49.370:E/AndroidRuntime(12577):at android.app.FragmentManagerImpl.execPendingActions(FragmentManager。 java:1397)

+0

錯誤的代碼。什麼是PoiFragment?問題在那裏。 – 2013-03-01 10:32:50

+0

poi片段是片段類的名稱 – Bug 2013-03-01 10:44:13

+0

當我從代碼中刪除最後兩行時,它的工作原理很好 但是當最後兩行被添加時,它停止工作 – Bug 2013-03-01 10:44:32

回答

0

這裏是我找到了問題的解決。

import android.os.Bundle; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import com.google.android.gms.maps.CameraUpdateFactory; 
import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 
import com.google.android.gms.maps.model.BitmapDescriptorFactory; 
import com.google.android.gms.maps.model.CameraPosition; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import com.tfick.android.R; 

public class PoiFragment extends MapFragment { 
    /*object of google map*/ 
    public GoogleMap mGoogleMap; 
    /* summy location*/ 
    private static final LatLng SYDNEY = new LatLng(23.03, 72.62); 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     return super.onCreateView(inflater, container, savedInstanceState); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onActivityCreated(savedInstanceState); 

     if (getMap() != null) { 
      Log.d(getClass().getSimpleName(), "Map ready for use!"); 

      mGoogleMap = getMap(); 

      /* cretaing custom camera position */ 

      CameraPosition mCameraPosition = new CameraPosition.Builder() 
        .target(SYDNEY).bearing(0).tilt(30).build(); 
      Log.i("gmap", mGoogleMap.toString()); 

      /* setting custom camera position */ 

      mGoogleMap.animateCamera(CameraUpdateFactory 
        .newCameraPosition(mCameraPosition)); 

      /* adding custom marker on the map. */ 
      mGoogleMap 
        .addMarker(new MarkerOptions() 
          .draggable(true) 
          .position(new LatLng(22.03, 72.56)) 
          .title("hello world") 
          .snippet("Ahmedabad") 
          .icon(BitmapDescriptorFactory 
            .fromResource(R.drawable.wifi))); 

      mGoogleMap 
        .addMarker(new MarkerOptions() 
          .draggable(true) 
          .position(new LatLng(23.03, 78.10)) 
          .title("hello world") 
          .snippet("Baroda") 
          .icon(BitmapDescriptorFactory 
            .fromResource(R.drawable.wifi))); 

     } 

    } 

} 
0

看起來getMap()返回null。 可能的解決方案:

  • 您是否通過GooglePlayServicesUtil.isGooglePlayServicesAvailable(context)檢查Google Play服務是否可用?
  • 地圖可能還沒有被初始化,嘗試getMap()在生命週期的後點,像onResume()
+0

MapFragment mapFragment = MapFragment.newInstance(); FragmentTransaction fragmentTransaction = getFragmentManager()。beginTransaction(); fragmentTransaction.add(R.id.container1,mapFragment); fragmentTransaction.commit(); 這段代碼的和平工作正確 但是當我getmap()它不會這樣做。 – Bug 2013-03-01 10:50:24

+0

是的,那是因爲getMap()返回null。你有沒有嘗試我的一個主張? – Mokus 2013-03-01 10:52:42

相關問題