【问题标题】:Android MapActivity crashes when using super.onDestroy使用 super.onDestroy 时 Android MapActivity 崩溃
【发布时间】:2012-10-18 00:45:21
【问题描述】:

我有一个到目前为止相当稳定的应用程序,我决定要向它添加一个 MapView。如果这有所不同,则 MapView 位于 Horizo​​ntalScrollView 中。我将我的主要活动转换为扩展 MapActivity 并添加了 isRouteDisplayed() 函数。我可以编译并运行它,滚动查看我的 MapView 是否正确加载。

我的问题是何时调用 super.onDestroy()。由于某种原因,程序崩溃了。

LogCat:

10-17 18:32:17.109: E/AndroidRuntime(5477): 由: java.lang.NullPointerException 10-17 18:32:17.109: E/AndroidRuntime(5477):在 com.google.android.maps.MapActivity.onDestroy(MapActivity.java:500) 10-17 18:32:17.109: E/AndroidRuntime(5477): 在 com.appsmith.mapit.MainActivity.onDestroy(MainActivity.java:177) 10-17 18:32:17.109:E/AndroidRuntime(5477):在 android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2663) 10-17 18:32:17.109: E/AndroidRuntime(5477): ... 11 更多

 @Override
 public void onDestroy()
 {
        internalSave();
        writeOutLookupTable("Unit");
        gpsManager.removeUpdates(myListener);
        super.onDestroy(); //MainActivity.java Line 177
        finish();
 }

任何解决此问题的建议将不胜感激。

编辑:知道了!我实现了一个 onPause(),它与我的 onDestroy() 具有相同的信息(这是我在应用程序不使用时保持 GPS 不处于活动状态的解决方案)。注释掉 onPause() 会让一切再次变得愉快。感谢您的帮助!

【问题讨论】:

  • 忘记第 177 行,你的 null 在第 MapActivity.java:500 行。让我们看看那部分。
  • @Geobits 它说 com.google.android.maps.MapActivity.onDestroy(MapActivity.java:500)。它是Android的源代码。这就是这个问题很难回答的原因。
  • 该死的,我不知何故错过了。谢谢。
  • 看起来像一行:view.onSearch(searchResult, s);, view is null??

标签: android nullpointerexception android-mapview mapactivity ondestroy


【解决方案1】:

你不需要调用finish();在 onDestroy() 中,finish() 正如文档所说:“当你的活动完成并应该关闭时调用它。”,所以如果你在 onDestroy() 那么你的活动已经完成了

还有 super.onDestroy();通常被放在 onDestroy() 的顶部。

【讨论】:

  • 完全正确。我希望它能解决问题,因为我不确定。
  • 我尝试注释掉 finish() 并将 super.onDestroy() 移动到 onDestroy 的顶行,但是没有用...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2023-03-24
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多