BaseTransientBottomBar и связанная с ней ошибка, и способы ее устранения - PullRequest
0 голосов
/ 25 августа 2018

Во-первых, что я пытался решить проблему ниже:

Шаг 1. Я поместил метод в свой абстрактный класс BaseActivity и BaseActivity, чтобы узнать, когда деятельность остановлена ​​и когда представление (корневое представление фрагмента) уничтожено [возвращает true в обоих случаях, но false перед событием (onStop (), onViewDestroyed ()) вызывается].

Шаг 2. Я запретил отображать один-единственный SnackBar при возврате true в любом из обоих. Также проверяется isFinishing () BaseActivity.

Но ошибка не исчезает.

Я хочу узнать больше об этом классе:

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

подробности:

Обратите внимание, что мое устройство HTC Desire 816, оно было запущено с KitKat и теперь обновлено до MarshMallow, но все еще содержит ошибки KitKat, такие как Camera не высвобождает ресурсы и не вылетает, впоследствии, после получения первого снимка.

Но для предотвращения этого должно быть какое-то решение, например, следующее:

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

Мои наилучшие пожелания.

1 Ответ

0 голосов
/ 25 августа 2018

Я решил это, используя свой собственный ответ:

Когда я использовал логическую переменную в onDestroy () и проверил ее, я знал, что не должен показывать Snackbar, так как он использует представление в качестве второгопараметр.Ссылка для объяснения:

Фрагмент onStop () или onDetach (), onDestroy () или onDestroyView () одного и того же?

также из-за ограничений, как хорошо описанопо следующей ссылке:

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

Happy Coding: -)

...