我在我的应用程序中使用谷歌地图。第一次正确加载谷歌地图时,页面上有一个按钮,但再次转到该页面并单击该按钮会使我的应用程序崩溃。
这是我的代码:
公共类 GoogleMaps 扩展 Activity {
MapFragment googleMapFragment = null;
私有静态 GoogleMap googleMap = null;
私有字符串提供者;
MarkerOptions 标记;
双纬、经度;
私人位置管理器位置管理器;
ParseGeoPoint myLatLng[];
int count_place, i = 0;
@覆盖
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.googlemap_view);
尝试 {
初始化映射();
初始化解析();
} 捕捉(异常 e){
// TODO: 处理异常
Toast.makeText(getApplicationContext(), e.toString(),
Toast.LENGTH_SHORT).show();
}
}
私人无效initParse(){
// TODO 自动生成的方法存根
Parse.initialize(this, "key","key");
ParseObject plcobj = new ParseObject("Details");
getLatLong();
ParseGeoPoint myGeoPint = new ParseGeoPoint(latitude, longitude);
ParseGeoPoint userLocation = (ParseGeoPoint) plcobj.get("location");
最终 ParseQuery 查询 = ParseQuery.getQuery("Details");
query.whereNear("位置", myGeoPint);
查询.setLimit(10);
query.whereWithinKilometers("位置", myGeoPint, 10);
query.findInBackground(new FindCallback() {
@覆盖
公共无效完成(列表对象,ParseException e){
// TODO 自动生成的方法存根
如果(e == null){
迭代器 Itr = objects.iterator();
而(Itr.hasNext()){
ParseObject plcObjNext = (ParseObject) Itr.next();
myLatLng[i] = plcObjNext.getParseGeoPoint("位置");
我++;// 第 76 行
}
}
}
});
}
私人无效初始化映射(){
如果(googleMap == null){
googleMapFragment = ((MapFragment) getFragmentManager()
.findFragmentById(R.id.map));
googleMap = googleMapFragment.getMap();
googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
如果(googleMap == null){
Toast.makeText(getApplicationContext(),
“抱歉!无法创建地图”,Toast.LENGTH_SHORT)
。节目();
}
googleMap.setMyLocationEnabled(true);
Log.e("地图", "-----EOC------");
// 获取位置管理器
}
}
公共无效getLatLong(){
GPSTracker gps = new GPSTracker(GoogleMaps.this);
如果(gps.canGetLocation()){
经度 = gps.getLongitude();
纬度 = gps.getLatitude();
Toast.makeText(getApplicationContext(), 经度 + " " + 纬度,
Toast.LENGTH_SHORT).show();
} // 返回布尔值 true/false
别的 {
gps.showSettingsAlert();
}
}
}
这是我的日志:
10-18 13:37:24.219 E/AndroidRuntime(21624): 致命异常: main 10-18 13:37:24.219 E/AndroidRuntime(21624): java.lang.NullPointerException 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 com.example.restaurantfinder.GoogleMaps$1.done(GoogleMaps.java:76) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 com.parse.FindCallback.internalDone(FindCallback.java:45) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 com.parse.FindCallback.internalDone(FindCallback.java:1) 10-18 13:37:24.219 E/AndroidRuntime(21624): at com.parse.Parse$6$1.run(Parse.java:888) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 android.os.Handler.handleCallback(Handler.java:605) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 android.os.Handler.dispatchMessage(Handler.java:92) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 android.os.Looper.loop(Looper.java:137) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 android.app.ActivityThread.main(ActivityThread.java:4517) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 java.lang.reflect.Method.invokeNative(Native Method) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 java.lang.reflect.Method.invoke(Method.java:511) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 10-18 13:37:24.219 E/AndroidRuntime(21624): 在 dalvik.system.NativeStart.main(Native Method)