У меня возникают сбои в приложении на основе Compose при очистке компонентов AndroidView, содержащих просмотры сторонних объявлений. Сбой происходит во время отсоединения представления:
Неустрашимое исключение: java.lang.NullPointerException: попытка вызвать
виртуальный метод 'void android.view.View .dispatchDetachedFromWindow()'
по нулевой ссылке на объект
в android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4219)
at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:6108)
at androidx.compose.ui.viewinterop.AndroidViewHolder.onDeactivate(AndroidViewHolder.android.kt:222)
at androidx.compose.ui.node.LayoutNode.onDeactivate(LayoutNode.kt:1350)
at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers(Composition.kt:1283)
at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:984)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:1005)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:639)
at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke(Recomposer.kt:551)
at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame(AndroidUiFrameClock.android.kt:41 )
в androidx.compose.ui.platform.AndroidUiDispatcher.performFrameDispatch(AndroidUiDispatcher.android.kt:109)
at androidx.compose.ui.platform.AndroidUiDispatcher.access$performFrameDispatch(AndroidUiDispatcher.android.kt:41)
в androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame(AndroidUiDispatcher.android.kt:69)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1688)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1699)
в android.view.Choreographer.doCallbacks(Choreographer.java:1154)
в android.view.Choreographer.doFrame(Choreographer. java:1070)
в android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1647)
в android.os.Handler.handleCallback(Handler.java:958)
в android.os.Handler.dispatchMessage(Handler. java:99)
в android.os.Looper.loopOnce(Looper.java:230)
в android.os.Looper.loop(Looper.java:319)
в android.app.ActivityThread.main(ActivityThread.java: 9063)
в java.lang.reflect.Method.invoke(Method.java)
в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Сбой обычно происходит при быстрой навигации между экранами или при переключении между вкладками в HorizontalPager, содержащий сторонние представления рекламы (интегрированные через AndroidView). К сожалению, трассировка стека не дает достаточно подробностей, и я не могу воспроизвести сбой на своих устройствах или эмуляторах Genymotion.
Как правильно очистить компоненты AndroidView, содержащие сторонние просмотры рекламы для вечеринок в Compose?
Как я могу обеспечить правильное отсоединение просмотра при навигации или переключении страниц, чтобы избежать этого исключения NullPointerException в диспетчеризацииDetachedFromWindow()?
Известен ли жизненный цикл или гонка условие, связанное с AndroidView, которое может вызвать этот сбой?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ew-cleanup
Android Compose: исключение NullPointerException во время очистки AndroidView ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение