2014-06-27 59 views
10

我正在使用Google Maps。我能够成功创建并显示Google地图。现在我想添加CameraUpdate(latitude, longitude)。我GOOGLE了,我发现一些源代码,但我得到一个NullPointerExceptionjava.lang.NullPointerException:CameraUpdateFactory未初始化logcat异常

的logcat的错误信息是:

java.lang.NullPointerException: CameraUpdateFactory is not initialized 

这是我的源。我究竟做错了什么?

public class StradaContact extends Fragment { 

public final static String TAG = StradaContact.class.getSimpleName(); 
private MapView mMapView; 
private GoogleMap mMap; 
private Bundle mBundle; 
double longitude = 44.79299800000001, latitude = 41.709981; 

public StradaContact() { 

} 

public static StradaContact newInstance() { 
    return new StradaContact(); 
} 

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

    View rootView = inflater.inflate(R.layout.strada_contact, container,false); 

    mMapView = (MapView) rootView.findViewById(R.id.pointMap); 

    mMapView.onCreate(mBundle); 
    setUpMapIfNeeded(rootView); 

    return rootView; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mBundle = savedInstanceState; 
} 

private void setUpMapIfNeeded(View inflatedView) { 
    if (mMap == null) { 
     mMap = ((MapView) inflatedView.findViewById(R.id.pointMap)).getMap(); 
     if (mMap != null) { 
      CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(latitude, longitude)); 
      CameraUpdate zoom = CameraUpdateFactory.zoomTo(15); 
      mMap.moveCamera(center); 
      mMap.animateCamera(zoom); 
     } 
    } 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    mMapView.onResume(); 
} 

@Override 
public void onPause() { 
    super.onPause(); 
    mMapView.onPause(); 
} 

@Override 
public void onDestroy() { 
    mMapView.onDestroy(); 
    super.onDestroy(); 
} 

}

<com.google.android.gms.maps.MapView 
     android:id="@+id/pointMap" 
     android:name="com.google.android.gms.maps.MapFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     class="com.google.android.gms.maps.MapFragment" /> 
+0

检查:HTTP: //stackoverflow.com/questions/19541915/google-maps-cameraupdatefactor y-not-initalized – Ranjit

回答

6

用以下方法尝试初始化谷歌地图API的使用

MapsInitializer.initialize(getActivity()); 
+0

为什么这比getMap()更好? –

19

试试这个在 “的onCreate” 前:

try { 
MapsInitializer.initialize(this); 
} catch (GooglePlayServicesNotAvailableException e) { 
e.printStackTrace(); 
} 
+0

它为我工作=) –

+0

我已经调用SupportMapFragment的'getMap()'方法。为什么我还需要MapsInitializer? –