非法状态异常 无法在分离的视图上启动此动画器



我正在尝试解决Crashlytics为Android应用程序报告的崩溃问题。根据Crashlytics的说法,崩溃只发生在Android OS 8.1上,而不是任何其他操作系统版本。

问题是来自Crashlytics的堆栈跟踪根本没有给我任何关于崩溃发生地点/方式的线索,因为它只显示Android SDK调用堆栈。下面是堆栈跟踪:

Fatal Exception: java.lang.IllegalStateException: Cannot start this animator on a detached view!
at android.view.RenderNode.addAnimator(RenderNode.java:799)
at android.view.RenderNodeAnimator.setTarget(RenderNodeAnimator.java:299)
at android.view.RenderNodeAnimator.setTarget(RenderNodeAnimator.java:289)
at android.graphics.drawable.RippleComponent$RenderNodeAnimatorSet.start(RippleComponent.java:316)
at android.graphics.drawable.RippleComponent.startPendingAnimation(RippleComponent.java:200)
at android.graphics.drawable.RippleComponent.draw(RippleComponent.java:167)
at android.graphics.drawable.RippleDrawable.drawBackgroundAndRipples(RippleDrawable.java:892)
at android.graphics.drawable.RippleDrawable.draw(RippleDrawable.java:699)
at android.view.View.onDrawForeground(View.java:20914)
at android.view.View.draw(View.java:19205)
at android.transition.TransitionUtils.createViewBitmap(TransitionUtils.java:177)
at android.app.SharedElementCallback.onCaptureSharedElementSnapshot(SharedElementCallback.java:205)
at android.app.ActivityTransitionCoordinator.captureSharedElementState(ActivityTransitionCoordinator.java:810)
at android.app.ActivityTransitionCoordinator.captureSharedElementState(ActivityTransitionCoordinator.java:733)
at android.app.ExitTransitionCoordinator.sharedElementTransitionComplete(ExitTransitionCoordinator.java:405)
at android.app.ExitTransitionCoordinator$9.onTransitionEnd(ExitTransitionCoordinator.java:362)
at android.transition.Transition.end(Transition.java:1926)
at android.transition.TransitionSet$TransitionSetListener.onTransitionEnd(TransitionSet.java:369)
at android.transition.Transition.end(Transition.java:1926)
at android.transition.TransitionSet$TransitionSetListener.onTransitionEnd(TransitionSet.java:369)
at android.transition.Transition.end(Transition.java:1926)
at android.transition.TransitionSet$TransitionSetListener.onTransitionEnd(TransitionSet.java:369)
at android.transition.Transition.end(Transition.java:1926)
at android.transition.Transition.runAnimators(Transition.java:883)
at android.transition.TransitionSet.runAnimators(TransitionSet.java:433)
at android.transition.TransitionSet.runAnimators(TransitionSet.java:433)
at android.transition.TransitionSet.runAnimators(TransitionSet.java:433)
at android.transition.TransitionSet.runAnimators(TransitionSet.java:433)
at android.transition.Transition.playTransition(Transition.java:1780)
at android.transition.TransitionManager$MultiListener.onPreDraw(TransitionManager.java:315)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:977)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2349)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

我搜索了 Stackoverflow 以及其他有关"无法在分离视图上启动此动画器"的网站,但所有站点都涉及调用自己的自定义类。但是,就我而言,似乎Android SDK本身崩溃了!

以前有人有过类似的经历吗?堆栈跟踪是否说明了什么?我应该从哪里开始研究问题?活动转换?动画代码?

任何帮助都非常感谢!

我知道

已经晚了,但对于面临这个问题的其他人,我也有这个问题。我正在使用MaterialShowcaseView,问题是当用户打开一个活动并且想要出现showCase时,如果用户立即关闭当前活动,该活动将分离所有布局小部件。所以揭示动画无法开始,因为视图不再存在!这是 github 中的一个未解决的问题。

最新更新