Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java.lang.NullPointerException: CameraUpdateFactory is not initialized logcat exception

I'm working with Google Maps. I am able to successfully create and can show a Google Map. Now I want to add CameraUpdate(latitude, longitude). I googled and I found some source code but I'm getting a NullPointerException.

The LogCat error message is:

java.lang.NullPointerException: CameraUpdateFactory is not initialized

This is my source. What am I doing wrong?

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" />
like image 542
user3775061 Avatar asked Jun 27 '14 09:06

user3775061


2 Answers

Try this in "onCreate":

try {
 MapsInitializer.initialize(this);
} catch (GooglePlayServicesNotAvailableException e) {
 e.printStackTrace();
}
like image 167
Elizabeth Avatar answered Oct 08 '22 21:10

Elizabeth


Try with following method initialize google map api before using

MapsInitializer.initialize(getActivity());
like image 40
Sunil Kumar Sahoo Avatar answered Oct 08 '22 22:10

Sunil Kumar Sahoo