我想在地图上显示某个点,但是当我将相机设置在地图上时,为什么会发生此错误?如果使用CameraUpdateFactory程序订购时出错,以前我没有遇到错误

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.bongkorr/com.hospifinder.Maps}: java.lang.NullPointerException: CameraUpdateFactory is not initialized

CameraUpdateFactory的草稿代码完整,这有什么问题吗?

Maps.java

public class Maps<Passing> extends FragmentActivity implements LocationListener {

    private GoogleMap map;
    private DBAdapter dbhelper;
    private SQLiteDatabase db = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        dbhelper = new DBAdapter(this);
        db = dbhelper.getWritableDatabase();
        dbhelper.delAllData(db);
        //dbhelper.delAllData2(db);
        dbhelper.generateDataLokasi(db);
        dbhelper.generateDataRS(db);
        setContentView(R.layout.maps);



        SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        map = fm.getMap();

        map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(-6.604345,
                106.796640), 12));

        map.setMyLocationEnabled(true);

        Cursor c = dbhelper.fetchAllLokasi(db);
        int col = dbhelper.fetchAllLokasi(db).getCount();




        if (col == 0) {
            Toast.makeText(Maps.this, "Pas de donnees ", Toast.LENGTH_LONG)
                    .show();

        } else {

            c.moveToFirst();
            while (c.isAfterLast() == false) {

    String id = "" + c.getInt(0);
    String nama = c.getString(1);
    String longitude = c.getString(3);
    String latitude = c.getString(2);
    String ket = c.getString(4);


    Marker marker = map.addMarker(new MarkerOptions()
    .position(
            new LatLng(Double.parseDouble(latitude), Double
                    .parseDouble(longitude)))
    .title(nama)
    .snippet(ket)

    .icon(BitmapDescriptorFactory
            .fromResource(R.drawable.icmarker)));
c.moveToNext();



            }
        }


在此答案上我找不到,我几次运行此应用程序,都修复了错误,如果我的代码有问题吗?请帮忙

最佳答案

我认为您需要显式调用MapsInitializer

样例代码:

@Override public View
onCreateView(LayoutInflater inflater, ViewGroup container,
             Bundle savedInstanceState)
{
    View view = inflater.inflate(R.layout.map_panel, container, false);
    mapView = (MapView) view.findViewById(R.id.map_view);
    mapView.onCreate(savedInstanceState);
    configureMap(mapView.getMap());
    return view;
}

private void
configureMap(GoogleMap map, double lat, double lon)
{
    if (map == null)
        return; // Google Maps not available
    try {
        MapsInitializer.initialize(getActivity());
    }
    catch (GooglePlayServicesNotAvailableException e) {
        Log.e(LOG_TAG, "Have GoogleMap but then error", e);
        return;
    }
    map.setMyLocationEnabled(true);
    LatLng latLng = new LatLng(lat, lon);
    CameraUpdate camera = CameraUpdateFactory.newLatLng(latLng);
    map.animateCamera(camera);
}

09-10 10:03
查看更多