Android activity 方向改变时不断崩溃

Android activity keeps crashing on orientation change

我在我的 Android 应用程序的一个活动中遇到了一个相当微妙且无法检测到的错误。在某些情况下,当我将 activity 从横向转换为纵向或反之时,应用程序崩溃。这个错误特别困难和烦人的是,当我进行转换时,activity 中的 none 断点在调试模式下被击中。另外,logcat好像也没什么用,也什么都没有。

所以我会寻找一些关于可能导致方向更改崩溃的建议。我可以 post 一些代码,但我显然不能 post 一切,我不确定 post 来自 [=17= 的一些片段会有多大帮助].

Activity 的生命周期是这样的,在方向改变时不会调用像 onCreate()onStop()(例如)这样的事件。因此,如果您在 onCreate() 中创建了对象,则当您在 Activity returns 旋转后,它们可能不会被初始化 (=null)。检查代码中可能在 onCreate() 中初始化的对象。

您可能还想再添加一些 try..catchLog.e 条消息。

老实说,如果您的应用程序崩溃,logcat 中应该会记录错误。

我正处于放弃的边缘,在一次失败的测试后 Logcat 中出现了一些东西:

java.lang.NullPointerException: Attempt to invoke virtual method 'void
    com.google.android.gms.maps.model.Marker.setIcon
   (com.google.android.gms.maps.model.BitmapDescriptor)' on a null object reference

我跟踪堆栈跟踪到 activity 中发生空指针异常的位置。事实上,正如你们中的许多人在评论中所建议的那样,有些状态没有被正确恢复。确切的问题发生在 Google 映射的初始化中。

现在乍一看,这题好像是"why isn't this code working"类型的。然而,事实并非如此,因为调试和大部分时间 Logcat 都未能揭示问题所在。

温馨提示,如果您在 Android 代码中遇到错误,您不应该仅仅依靠调试,因为它可能不起作用。 Logcat好像是从这里走过来的,不过连每次好像都重现不了