android - 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)。
编辑:我无权访问片段管理器本身,导航库是负责片段的人,因此与片段膨胀有关的任何其他错误都不相关
解决方案
好的,我终于找到了崩溃的原因......这是我使用的一个自定义视图库,我没有正确管理它自己的实例恢复逻辑。
我发现崩溃只发生在应用程序的两个部分中,这指出我可能是哪里出了问题。
最后,更多的问题是没有良好的堆栈跟踪来查看问题出在哪里......
推荐阅读
- c++ - 在对象未更新时传递对常量对象的引用
- javascript - 更改事件在两个元素中不起作用
- python - 我想用这段代码生成随机数,但它会产生错误
- python - file_version_info.txt中的filevers/prodvers这四项是什么意思?
- android - 我如何实现这个设计?
- for-loop - 在创建活动之前检查日历是否有重复项
- sass - 当页面重新加载时,Gulp watch with Livereload 重新加载,或者自己
- ansible - 使用 jinja2 的 ansible 库存组
- reactjs - 选择时 React Native TextInput 缩小,我该如何停止它?
- java - 在 Quarkus-Camel 中的任何其他类之前调用一个类