Android活动会因定位更改而崩溃

时间:2018-05-22 15:48:57

标签: android landscape-portrait

我在Android应用的某个活动中遇到了一个相当微妙且无法察觉的错误。在某些情况下,当我将活动从横向转换为纵向,或反之亦然时,应用程序崩溃。这个错误特别困难和烦恼的是,当我进行转换时,活动中没有任何断点在调试模式中被击中。另外,logcat似乎没什么帮助,也没有任何东西出现在那里。

所以我会寻找一些关于什么可能导致方向改变崩溃的建议。我可以发布一些代码,但我显然无法发布所有内容,而且我不确定从活动中发布一些片段会有多大帮助。

2 个答案:

答案 0 :(得分:1)

Activity的生命周期是这样的,在方向更改事件中,不会调用onCreate()onStop()(例如)。因此,如果您在onCreate()中创建了对象,则在轮换后null返回时,它们可能无法初始化(= Activity)。检查代码中是否有可能在onCreate()中初始化的对象。

此外,您可能还需要添加一些try..catchLog.e消息。

说实话,如果你的应用程序崩溃,logcat中应该记录一个错误。

答案 1 :(得分:0)

在一次失败的测试之后,当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

我跟踪堆栈跟踪到活动中发生空指针异常的点。事实上,正如你们许多人在评论中所建议的,有些州没有得到适当的恢复。准确的问题发生在Google Map的初始化中。

乍一看,这个问题似乎是"为什么这个代码不起作用"类型。但事实并非如此,因为无论是调试还是大部分时间,Logcat都无法揭示问题所在。

作为回家消息,如果您遇到Android代码中的错误,则不应单独依赖调试,因为它可能无法正常工作。 Logcat似乎已经来到这里,但即使它似乎每次都不可重复。