首页 > 解决方案 > Android导航架构:在不保留活动选项时崩溃

问题描述

我目前在我的一个项目中使用 Android Arch Navigation (1.0.0-alpha06)。但有时我在我的 Crashlytics 中遇到同样的崩溃:

java.lang.RuntimeException: Unable to start activity ComponentInfo{*.*.*.MainActivity}: android.view.InflateException: Binary XML file line #29: Binary XML file line #29: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #29: Binary XML file line #29: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #29: Error inflating class fragment
Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@1e9584c: Unmarshalling unknown type code 7274595 at offset 516

因此,在挖掘了我在 MainActivity 上发生多次崩溃的原因之后,我将设备设置为不保留活动(开发人员选项)。还有巴姆!每次我将我的应用程序发送到后台并返回应用程序时都会崩溃。

我没有设置任何onSaveInstanceState/onRestoreInstanceState方法。所以不知道在哪里看。

无论是否启用 proguard,都会发生这种情况(我使用调试版本和发布版本对其进行测试),因此我可以排除缺少的 proguard 规则。

其他可能有帮助的信息:我的应用正在使用android.arch库 (MVVM)。

编辑:我无权访问片段管理器本身,导航库是负责片段的人,因此与片段膨胀有关的任何其他错误都不相关

标签: androidandroid-architecture-componentsandroid-architecture-navigation

解决方案


好的,我终于找到了崩溃的原因......这是我使用的一个自定义视图库,我没有正确管理它自己的实例恢复逻辑。

我发现崩溃只发生在应用程序的两个部分中,这指出我可能是哪里出了问题。

最后,更多的问题是没有良好的堆栈跟踪来查看问题出在哪里......


推荐阅读