Intereting Posts
Ошибка. Причина. Не удалось найти допустимый путь сертификации для запрошенной цели. BroadcastReceiver для CONNECTIVITY_ACTION всегда возвращает null в aim.getExtras () Android C2DM Auth токен, один раз или каждый раз Есть ли прослушиватель Dropped Call Listener Как получить текущее использование сети приложения (или всего), даже на Android N? Как вы устанавливаетеLayoutParams () для ImageView? Android-Execution failed for task ': app: transformClassesWithDexForAvsDebug' Вложенные настройки предпочтений в динамическом списке предпочтений на Android Как правильно выбрать изображение для Android Лучший способ получить бесплатную версию Android-приложения Проблема с обратным вызовом на экране в полноэкранном режиме Android Какие телефоны Android имеют большие размеры экрана Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare () Создание OnDragListener для Google Map v2 Фрагмент Android: Как получить пользовательский вид высоты и ширины?

Android: добавление окна не удалось / android.os.TransactionTooLargeException на устройствах Samsung

Поскольку через пару месяцев у меня появилось большое количество исключений в моем приложении с сообщением об ошибке: Ошибка добавления окна (android.os.TransactionTooLargeException)

Я знаю, что размер транзакции буфера IPC ограничен 1024 КБ, но я просто отправляю идентификаторы на свой сервис (длинное значение). Странно, что эти исключения происходят только на устройствах Samsung с Android 4.4.2 (каждый из которых составляет более 50K сбоев). Вы знаете какую-то ошибку в последнем Samsung ROM?

java.lang.RuntimeException: Adding window failed at android.view.ViewRootImpl.setView(ViewRootImpl.java:738) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:278) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.widget.Toast$TN.handleShow(Toast.java:478) at android.widget.Toast$TN$1.run(Toast.java:374) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5476) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: android.os.TransactionTooLargeException at android.os.BinderProxy.transact(Binder.java) at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:710) at android.view.ViewRootImpl.setView(ViewRootImpl.java:727) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:278) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.widget.Toast$TN.handleShow(Toast.java:478) at android.widget.Toast$TN$1.run(Toast.java:374) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5476) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) at dalvik.system.NativeStart.main(NativeStart.java) 

или

  java.lang.RuntimeException: Adding window failed at android.view.ViewRootImpl.setView(ViewRootImpl.java:726) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:278) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3038) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2368) at android.app.ActivityThread.access$900(ActivityThread.java:161) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:157) at android.app.ActivityThread.main(ActivityThread.java:5356) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at dalvik.system.NativeStart.main(NativeStart.java) Caused by: android.os.TransactionTooLargeException at android.os.BinderProxy.transact(Binder.java) at android.view.IWindowSession$Stub$Proxy.addToDisplay(IWindowSession.java:710) at android.view.ViewRootImpl.setView(ViewRootImpl.java:715) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:278) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3038) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2368) at android.app.ActivityThread.access$900(ActivityThread.java:161) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:157) at android.app.ActivityThread.main(ActivityThread.java:5356) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) at dalvik.system.NativeStart.main(NativeStart.java) 

Solutions Collecting From Web of "Android: добавление окна не удалось / android.os.TransactionTooLargeException на устройствах Samsung"

Пожалуйста, проверьте ответ, указанный здесь, при переполнении стека.

Durairaj Packirisamy ответил на тот же вопрос об ошибке TransactionTooLarge, которая ниже.

Дурайрадж Пакирисами говорит:

Я столкнулся с этой проблемой, и я обнаружил, что при обмене огромным количеством данных между сервисом и приложением (это включает в себя передачу большого количества миниатюр). Фактически размер данных был около 500 КБ, а размер буфера транзакций IPC установлен равным 1024 КБ. Я не уверен, почему он превысил буфер транзакций.

Это также может произойти, когда вы передаете много данных с помощью дополнительных намерений

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

Вы обмениваете много данных между вашими услугами и приложением? Используя намерения обмениваться огромными данными (например, пользователь выбирает огромное количество файлов из общего ресурса общего доступа к галерее, URI из выбранных файлов будут переданы с использованием намерений), получая растровые файлы из службы, ожидающей андроида, чтобы откликнуться на огромные данные (Например, getInstalledApplications (), когда пользователь установил много приложений) с помощью applyBatch () с множеством ожидающих операций. Как обрабатывать, когда вы получаете это исключение

Если возможно, разделите большую операцию на небольшие куски, например, вместо вызова applyBatch () с 1000 операций, вызовите его по 100 каждый.

Не обменивайте огромные данные (> 1 МБ) между сервисами и приложениями

Я не знаю, как это сделать, но, не запрашивайте андроид, который может вернуть огромные данные 🙂


Me : – Недавно я также столкнулся с этой проблемой. Моя проблема заключалась в том, что я копировал видео из исходной папки на SD-карту, а затем создавал ее миниатюру и после нее показывал в виде списка. Весь этот процесс выполнялся в одиночном потоке, и было исключено исключение. Я решил эту проблему, разделив весь процесс копирования видео из исходной папки на SD-карту, создав палец ногтя и показывая по списку. Все эти действия были выполнены на 3 разных потоках, и моя проблема была решена.

Пожалуйста, дайте мне знать, если это поможет вам.

Я также получил TransactionTooLargeException на устройствах Samsung. Я передавал слишком большие html-данные в намерениях, но теперь я решил это, уменьшив количество огромных данных.

Когда вы получили исключение TransactionTooLargeException в своем приложении, проверьте свой код. Избегайте огромных данных в дополнительных целях.

Я думаю, вам нужно взглянуть на обзор класса TransactionTooLargeException