为啥错误 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