BaseTransientBottomBar和相关的错误以及解决方法

时间:2018-08-25 11:29:17

标签: android exception runtime

首先,我尝试解决以下问题:

步骤1。我在BaseActivity和BaseActivity抽象类中放置了一个方法,以了解何时停止Activity和何时破坏视图(片段的根视图)[在两种情况下都返回true,但在事件发生前返回false (称为onStop(),onViewDestroyed())。

第2步。当两者中的任何一个返回true时,我都无法显示一个和唯一的SnackBar。还检查了BaseActivity的isFinishing()。

但是错误不会消失。

我想进一步了解此类:

android.support.design.widget.BaseTransientBottomBar

以及与此相关的内部异常,以及如何解决以下问题:

08-25 16:45:50.826 5618-5688/com.my_package D/CrashlyticsCore: Session 5B8139230285-0001-15F2-C62ED7C4B2D1 has fatal exception: true
08-25 16:45:50.827 5618-5688/com.my_package D/CrashlyticsCore: Session 5B8139230285-0001-15F2-C62ED7C4B2D1 has non-fatal exceptions: false
08-25 16:45:51.481 5618-5618/com.my_package E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.my_package, PID: 5618
    java.lang.IllegalStateException: ScrollView can host only one direct child
        at android.widget.ScrollView.addView(ScrollView.java:251)
        at android.support.design.widget.BaseTransientBottomBar.showView(BaseTransientBottomBar.java:428)
        at android.support.design.widget.BaseTransientBottomBar$1.handleMessage(BaseTransientBottomBar.java:176)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:168)
        at android.app.ActivityThread.main(ActivityThread.java:5845)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
08-25 16:45:53.654 5618-5688/com.my_package D/CrashlyticsCore: Removing report at /data/user/0/com.my_package/files/.Fabric/com.crashlytics.sdk.android.crashlytics-core/fatal-sessions/5B8139230285-0001-15F2-C62ED7C4B2D1.cls
08-25 16:45:58.626 9576-9643/com.my_package D/CrashlyticsCore: Session 5B813A670174-0002-15F2-C62ED7C4B2D1 has fatal exception: false
08-25 16:45:58.627 9576-9643/com.my_package D/CrashlyticsCore: Session 5B813A670174-0002-15F2-C62ED7C4B2D1 has non-fatal exceptions: false
    No events present for session ID 5B813A670174-0002-15F2-C62ED7C4B2D1
    Removing session part files for ID 5B813A670174-0002-15F2-C62ED7C4B2D1

详细信息:

请注意,我的是Desire 816 HTC设备,它是从奇巧开始的,现在已升级到MarshMallow,但是仍然存在奇巧的错误,例如相机在拍摄第一张照片后没有释放资源并崩溃。 >

但是必须有一些解决方案来防止这种情况,例如以下解决方案:

https://stackoverflow.com/a/52014209/787399

我最诚挚的问候。

1 个答案:

答案 0 :(得分:2)

我用自己的答案解决了这个问题:

当我在onDestroy()中使用布尔变量并进行检查时,我知道我不应该显示Snackbar,因为它使用view作为第二个参数。解释链接:

Fragment onStop() versus onDetach(), onDestroy() or onDestroyView() of the same?

还有一些限制,如以下链接所述:

https://developer.android.com/topic/libraries/architecture/lifecycle#kotlin

快乐编码:-)