我当前在一个项目中使用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)。
编辑:我无权访问片段管理器本身,导航库是负责片段的人,因此与片段充气有关的任何其他错误都不相关
答案 0 :(得分:0)
好吧,我终于找到了崩溃的原因...这是我使用的一个自定义视图库,我没有正确管理它的实例还原逻辑。
我发现崩溃仅发生在应用程序的两个部分中,这向我指出了可能是问题所在。
最后,更多的问题是没有足够的堆栈跟踪来查看问题发生的位置...
答案 1 :(得分:-2)
请记住,除非您重写活动和片段中的方法不执行任何操作,否则Android仍会执行一些保存实例状态工作。
@Override
protected void onSaveInstanceState(Bundle outState) {
// don't restore state
}
在许多情况下,由于许多奇怪的错误,我们这样做。含义是,如果您的应用程序从内存中弹出,则下次访问该应用程序时,它将100%重新启动。