【问题标题】:Crash with animations on top of camera preview相机预览顶部的动画崩溃
【发布时间】:2017-11-29 13:37:38
【问题描述】:

使用相机预览动画视图时发生崩溃。

跟踪如下:

D/OpenGLRenderer:endAllActiveAnimators 位于 0x702565a400 (RippleDrawable) 上,句柄为 0x701d23cc60

D/AndroidRuntime:关闭虚拟机

致命异常:java.lang.IllegalStateException:指定的消息队列同步屏障令牌尚未发布或已被删除。 在 android.os.MessageQueue.removeSyncBarrier(MessageQueue.java:512) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1248) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6338) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) 在 android.view.Choreographer.doCallbacks(Choreographer.java:686) 在 android.view.Choreographer.doFrame(Choreographer.java:621) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) 在 android.os.Handler.handleCallback(Handler.java:751) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6121) 在 java.lang.reflect.Method.invoke(Method.java) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

我已经使用 Google 的示例实现了相机预览,并且在预览顶部有“自动对焦”椭圆形,它使用 animate()method 和 alpha 动画显示/隐藏。

【问题讨论】:

标签: android animation android-camera2


【解决方案1】:

原来我在从相机预览中获取回调时并没有强制线程进入主线程。

 private Handler mAutoFocusHandler = new Handler(Looper.getMainLooper());

使用此Handler 发布Runnable 在哪里设置自动对焦动画可以解决问题。

注意:确保检查您是否在 UI 线程上为自己的视图设置动画,因为 View.animate() 从相机后台线程启动时似乎可以工作,但偶尔会使应用程序崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2017-06-18
    • 1970-01-01
    相关资源
    最近更新 更多