为啥错误 CameraUpdateFactory 未在 MapsFragment android 中初始化?

Posted

技术标签:

【中文标题】为啥错误 CameraUpdateFactory 未在 MapsFragment android 中初始化?【英文标题】:Why Error CameraUpdateFactory not initialized in MapsFragment android?为什么错误 CameraUpdateFactory 未在 MapsFragment android 中初始化? 【发布时间】:2016-01-01 14:25:11 【问题描述】:

我想在地图上显示某个点,但是当我在地图上设置相机时为什么会出现这个错误?如果这个命令 CameraUpdateFactory 程序出错,之前我没有遇到错误

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

Full是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();



            
        

我没有找到这个答案,我多次运行这个应用程序,修复了错误,如果我的代码有问题?请帮忙

【问题讨论】:

【参考方案1】:

我认为您需要显式调用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);

【讨论】:

以上是关于为啥错误 CameraUpdateFactory 未在 MapsFragment android 中初始化?的主要内容,如果未能解决你的问题,请参考以下文章

api v2 中的 mapview 和 cameraupdate

将引脚放在片段中的地图片段上

NPM 启动错误上的 ENOENT。为啥我会收到此错误,为啥要查找“我的图片”目录?

为啥要构建离子错误? - 错误 65

为啥我会收到这种错误验证错误?

为啥我会收到错误数量的参数错误?