flutter_inappwebview
flutter_inappwebview copied to clipboard
Android Firebase issue: PlatformViewWrapper.draw - java.lang.IllegalStateException - Surface was already locked! - PlatformViewWrapper.java:300
- [x] I have read the Getting Started section
- [x] I have already searched for the same problem
Environment
Technology | Version |
---|---|
Flutter version | 3.7.12 |
Plugin version | 5.8.0 |
Android version | 6, 11, 12, 13 |
iOS version | |
macOS version | |
Xcode version |
Device information: Samsung Galaxy J2 Pro, vivo, Xiomi
Stacktrace/Logcat
Fatal Exception: java.lang.IllegalStateException: Surface was already locked! at android.view.Surface$HwuiContext.lockCanvas(Surface.java:648) at android.view.Surface.lockHardwareCanvas(Surface.java:365) at io.flutter.plugin.platform.PlatformViewWrapper.draw(PlatformViewWrapper.java:300) at android.view.View.updateDisplayListIfDirty(View.java:16519) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3910) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3890) at android.view.View.updateDisplayListIfDirty(View.java:16479) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3910) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3890) at android.view.View.updateDisplayListIfDirty(View.java:16479) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3910) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3890) at android.view.View.updateDisplayListIfDirty(View.java:16479) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3910) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3890) at android.view.View.updateDisplayListIfDirty(View.java:16479) at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:3910) at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:3890) at android.view.View.updateDisplayListIfDirty(View.java:16479) at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:325) at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:331) at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:366) at android.view.ViewRootImpl.draw(ViewRootImpl.java:3234) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:3033) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2615) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1528) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7530) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) at android.view.Choreographer.doCallbacks(Choreographer.java:686) at android.view.Choreographer.doFrame(Choreographer.java:622) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:7325) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
java.lang.ProcessManager: at java.lang.Object.wait(Object.java) at java.lang.ProcessManager.waitForMoreChildren(ProcessManager.java:140) at java.lang.ProcessManager.watchChildren(ProcessManager.java:105) at java.lang.ProcessManager.-wrap0(ProcessManager.java) at java.lang.ProcessManager$1.run(ProcessManager.java:58)
pool-21-thread-1: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:1220) at sun.misc.Unsafe.park(Unsafe.java:299) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1078) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1071) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)
ReferenceQueueDaemon: at java.lang.Object.wait(Object.java) at java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:162) at java.lang.Thread.run(Thread.java:818)
AsyncTask #3: at java.lang.Object.wait(Object.java) at java.lang.Thread.parkFor$(Thread.java:1220) at sun.misc.Unsafe.park(Unsafe.java:299) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2013) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:410) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1038) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1098) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)
PlatformServiceBridgeHandlerThread: at android.os.MessageQueue.nativePollOnce(MessageQueue.java) at android.os.MessageQueue.next(MessageQueue.java:323) at android.os.Looper.loop(Looper.java:135) at android.os.HandlerThread.run(HandlerThread.java:61)
OkHttp TaskRunner: at java.lang.Object.wait(Object.java) at okhttp3.internal.concurrent.TaskRunner$RealBackend.coordinatorWait(TaskRunner.kt:294) at okhttp3.internal.concurrent.TaskRunner.awaitTaskToRun(TaskRunner.kt:218) at okhttp3.internal.concurrent.TaskRunner$runnable$1.run(TaskRunner.kt:59) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)