アプリを最初にロードしたときにmapActivityが呼び出され、マップが表示されます。ネットワーク接続をオフにしてから再度オンにすると、画面を変更してmapactivityに戻ると、マップにnullが表示され、この行でnullpointer例外が発生しますMapUtils().drawMap(this);
。onResume()
方法。
@Override
protected void onResume() {
Utils utils = new Utils();
manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
listener = new ManageLocation();
listener.setSucessCallBack(this, "setLocation");
listener.setFailureCallBack(this, "setNoLocation");
manager.requestLocationUpdates(
utils.getCurrentPlaceLocationProvider(manager), 0, 0,
listener);
super.onResume();
Log.d(TAG, "Constants.isDataLoadedPAB " + Constants.isMaptobeLoaded
+ " Constants.isDataLoadedPAB : " + Constants.isDataLoadedPAB);
if (Constants.isMaptobeLoaded) {
if (Constants.isDataLoadedPAB) {
try {
new MapUtils().drawMap(this);
} catch (Exception e) {
Log.e(TAG, "Error", e);
}
} else {
if (Constants.currentLocation != null
&& Constants.searchLocation != null) {
if (Constants.searchResultData == null) {
Constants.searchResultData = new ArrayList<AttractionData>();
}
new MapUtils().drawMap(this);
}
}
}
((ImageView) activity.findViewById(R.id.left)).setEnabled(true);
((ImageView) activity.findViewById(R.id.right)).setEnabled(true);
((ImageView) findViewById(R.id.searchicon)).setEnabled(true);
((ImageView) activity.findViewById(R.id.facebookintegration)).setEnabled(true);
}
でもう一度呼び出そうとしてonResume()
いますが、それでもnullになります。どこが間違っているのかわからないので、助けていただければ幸いです。
私のログ
01-29 11:23:36.325: E/AndroidRuntime(6668): Caused by: java.lang.NullPointerException
01-29 11:23:36.325: E/AndroidRuntime(6668): at org.appright.myneighborhood.maps.MapUtils.drawMap(MapUtils.java:59)
01-29 11:23:36.325: E/AndroidRuntime(6668): at org.appright.myneighborhood.activity.CityAttractions.onResume(CityAttractions.java:505)
01-29 11:23:36.325: E/AndroidRuntime(6668): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1199)
01-29 11:23:36.325: E/AndroidRuntime(6668): at android.app.Activity.performResume(Activity.java:5280)
01-29 11:23:36.325: E/AndroidRuntime(6668): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2606)
01-29 11:23:36.325: E/AndroidRuntime(6668): ... 10 more