IllegalStateException для ScrollView в Android - PullRequest
0 голосов
/ 19 марта 2019

Я получаю эти отчеты о сбоях из своего приложения, но я просто не вижу, как воссоздать ошибку самостоятельно, несмотря ни на что.Я убедился, что все ScrollViews имеют только 1 дочерний элемент.

Вот мой след стека:

at android.widget.ScrollView.addView (ScrollView.java:273)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1425)
  at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1750)
  at android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1819)
  at android.support.v4.app.BackStackRecord.executePopOps (BackStackRecord.java:855)
  at android.support.v4.app.FragmentManagerImpl.executeOps (FragmentManager.java:2587)
  at android.support.v4.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2377)
  at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2332)
  at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate (FragmentManager.java:851)
  at android.support.v4.app.FragmentManagerImpl.popBackStackImmediate (FragmentManager.java:794)
  at android.support.v4.app.FragmentActivity.onBackPressed (FragmentActivity.java:181)
  at android.app.Activity.onKeyUp (Activity.java:2999)
  at android.view.KeyEvent.dispatch (KeyEvent.java:2715)
  at android.app.Activity.dispatchKeyEvent (Activity.java:3291)
  at android.support.v7.app.AppCompatActivity.dispatchKeyEvent (AppCompatActivity.java:534)
  at android.support.v7.view.WindowCallbackWrapper.dispatchKeyEvent (WindowCallbackWrapper.java:58)
  at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.dispatchKeyEvent (AppCompatDelegateImplBase.java:316)
  at com.android.internal.policy.DecorView.dispatchKeyEvent (DecorView.java:374)
  at android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent (ViewRootImpl.java:5170)
  at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess (ViewRootImpl.java:5042)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4363)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4416)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4382)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4390)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4363)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4416)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4382)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4525)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4390)
  at android.view.ViewRootImpl$AsyncInputStage.apply (ViewRootImpl.java:4582)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4363)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4416)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4382)
  at android.view.ViewRootImpl$InputStage.apply (ViewRootImpl.java:4390)
  at android.view.ViewRootImpl$InputStage.deliver (ViewRootImpl.java:4363)
  at android.view.ViewRootImpl$InputStage.onDeliverToNext (ViewRootImpl.java:4416)
  at android.view.ViewRootImpl$InputStage.forward (ViewRootImpl.java:4382)
  at android.view.ViewRootImpl$AsyncInputStage.forward (ViewRootImpl.java:4558)
  at android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent (ViewRootImpl.java:4719)
  at android.view.inputmethod.InputMethodManager$PendingEvent.run (InputMethodManager.java:2459)
  at android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback (InputMethodManager.java:2022)
  at android.view.inputmethod.InputMethodManager.finishedInputEvent (InputMethodManager.java:2013)
  at android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished (InputMethodManager.java:2436)
  at android.view.InputEventSender.dispatchInputEventFinished (InputEventSender.java:141)
  at android.os.MessageQueue.nativePollOnce (Native Method)
  at android.os.MessageQueue.next (MessageQueue.java:325)
  at android.os.Looper.loop (Looper.java:142)
  at android.app.ActivityThread.main (ActivityThread.java:6651)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:810)

Вот несколько потенциальных мест, где это может произойти:

  1. Я использую FragmentTransaction (support), чтобы заменить представление ScrollView обычными макетами / фрагментами вместо FrameLayout, чтобы макеты можно было прокручивать.ScrollView наследует FrameLayout, однако.

  2. Я повторно использую одно и то же диалоговое окно для нескольких действий / фрагментов и меняю содержимое в зависимости от того, какое перечисление / состояние выбрано.

  3. Я разрешаю изменения конфигурации в диалоговых окнах.

Ни один из этих трех не вызывает ошибки для меня на симуляторах или телефонах, но это происходит в приложении в реальном времени.Любая помощь будет оценена.

...