gpt4 book ai didi

Android:MapActivity 给出 Nullpointerexception

转载 作者:行者123 更新时间:2023-11-30 03:48:21 26 4
gpt4 key购买 nike

当我第一次加载我的应用程序时,mapActivity 正在调用并且我可以看到 map ,现在当我关闭网络连接并重新打开,更改屏幕并返回到 mapactivity, map 显示为空,此时出现空指针异常在 onResume() 方法中添加 MapUtils().drawMap(this);

@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

最佳答案

问题出在这一行

FrameLayout topLayout = (FrameLayout) activity.findViewById(R.id.map_container);
topLayout.removeAllViews();

MapUtils().drawMap(this);

您正在做的是从容器中删除所有 View ,即 FrameLayout map_container网络连接不可用时。

当网络再次出现时,您正在访问您已从布局层次结构中删除的MapView,这次它不会找到defaultmapView并抛出 NullPionterException

尝试注释 else block 中的所有代码,只显示 toast 。希望它会起作用。或者尝试一些不同的逻辑。

关于Android:MapActivity 给出 Nullpointerexception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14576397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com