Android View не привязан к оконному менеджеру - PullRequest
109 голосов
/ 08 февраля 2010

У меня есть некоторые из следующих исключений:

java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:191)
at android.view.Window$LocalWindowManager.updateViewLayout(Window.java:428)
at android.app.Dialog.onWindowAttributesChanged(Dialog.java:596)
at android.view.Window.setDefaultWindowFormat(Window.java:1013)
at com.android.internal.policy.impl.PhoneWindow.access$700(PhoneWindow.java:86)
at com.android.internal.policy.impl.PhoneWindow$DecorView.drawableChanged(PhoneWindow.java:1951)
at com.android.internal.policy.impl.PhoneWindow$DecorView.fitSystemWindows(PhoneWindow.java:1889)
at android.view.ViewRoot.performTraversals(ViewRoot.java:727)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4338)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)

Я гуглил и вижу, что это как-то связано с всплывающими окнами и поворотом экрана, но нет ссылки на мой код.

Вопросы:

  1. есть ли способ узнать именно тогда, когда эта проблема происходит?
  2. кроме поворота экрана, есть ли другое событие или действие, которое вызывает эту ошибку?
  3. как мне предотвратить это?

Ответы [ 13 ]

0 голосов
/ 26 августа 2013

Или просто вы можете добавить

protected void onPreExecute() {
    mDialog = ProgressDialog.show(mContext, "", "Saving changes...", true, false);
}

, что сделает ProgressDialog невозможным для отмены

0 голосов
/ 11 апреля 2012

когда вы объявляете активность в манифесте, вам нужен android: configChanges = "direction"

пример:

<activity android:theme="@android:style/Theme.Light.NoTitleBar" android:configChanges="orientation"  android:label="traducción" android:name=".PantallaTraductorAppActivity"></activity>
0 голосов
/ 09 февраля 2010

Для вопроса 1):

Учитывая, что в сообщении об ошибке не говорится, какая строка вашего кода вызывает проблему, вы можете отследить ее, используя точки останова. Точки останова приостанавливают выполнение программы, когда программа попадает в определенные строки кода. Добавляя точки останова в критические места, вы можете определить, какая строка кода вызывает сбой. Например, если ваша программа падает в строке setContentView (), вы можете поставить точку останова там. Когда программа запускается, она останавливается перед запуском этой строки. Если при возобновлении происходит сбой программы до достижения следующей точки останова, вы знаете, что линия, которая убила программу, была между двумя точками останова.

Добавление точек останова легко, если вы используете Eclipse. Щелкните правой кнопкой мыши на поле слева от вашего кода и выберите «Переключить точку останова». Затем вам нужно запустить приложение в режиме отладки, кнопка, которая выглядит как зеленое насекомое рядом с кнопкой обычного запуска. Когда программа достигает точки останова, Eclipse переключится на перспективу отладки и покажет вам линию, в которой она ожидает. Чтобы снова запустить программу, найдите кнопку «Возобновить», которая выглядит как обычное «Воспроизведение», но с вертикальной чертой слева от треугольника.

Вы также можете заполнить ваше приложение Log.d («Мое приложение», «Некоторая информация здесь, которая сообщает вам, где находится строка журнала»), которое затем публикует сообщения в окне Eclipse LogCat. Если вы не можете найти это окно, откройте его с помощью Window -> Show View -> Other ... -> Android -> LogCat.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...