2017-07-31 7 views
2

私はフレームアニメーションを果たしているし、次の活動は、アニメーションを明らかに円形で開始されAnimationDrawableを、持っているがクラッシュします。無効にアニメーションがアプリ

java.lang.IllegalStateException: Animator has already started, cannot change it now! 
      at android.view.RenderNodeAnimator.checkMutable(RenderNodeAnimator.java:149) 
      at android.view.RenderNodeAnimator.setDuration(RenderNodeAnimator.java:324) 
      at android.view.RenderNodeAnimator.setDuration(RenderNodeAnimator.java:322) 
      at android.animation.AnimatorSet.updateAnimatorsDuration(AnimatorSet.java:760) 
      at android.animation.AnimatorSet.getTotalDuration(AnimatorSet.java:1721) 
      at android.animation.AnimatorSet.forceToEnd(AnimatorSet.java:446) 
      at android.animation.AnimatorSet.doAnimationFrame(AnimatorSet.java:981) 
      at android.animation.AnimationHandler.doAnimationFrame(AnimationHandler.java:145) 
      at android.animation.AnimationHandler.-wrap2(Unknown Source:0) 
      at android.animation.AnimationHandler$1.doFrame(AnimationHandler.java:54) 
      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:884) 
      at android.view.Choreographer.doCallbacks(Choreographer.java:698) 
      at android.view.Choreographer.doFrame(Choreographer.java:630) 
      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:872) 
      at android.os.Handler.handleCallback(Handler.java:769) 
      at android.os.Handler.dispatchMessage(Handler.java:98) 
      at android.os.Looper.loop(Looper.java:164) 
      at android.app.ActivityThread.main(ActivityThread.java:6540) 
      at java.lang.reflect.Method.invoke(Native Method) 
      at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

は、あなたがどのように解決するために、任意の提案を持っています:テストデバイスの画面と今、私は次の例外を取得しています私はまた、いくつかのエスプレッソUIテストを持っているので、私は開発者向けオプションで無効にすべてのアニメーションをしましたこの問題?

+0

この問題を修正しましたか? @makovkastar –

+0

残念ながら、テストを実行する必要があるときにアニメーションを無効にするフラグを設定する必要がありました。 – makovkastar

答えて

1

アニメーターが既に起動しているかどうかを確認するにはどうすればよいですか?

if (!animatorSet.isStarted()) { 
    animatorSet.start(); 
} 
+0

答えをありがとうございますが、それは助けになりませんでした。とにかく、私はそれを開始する直前にAnimatorSetの新しいインスタンスを作成します。私は新しいインスタンスを作成した直後にanimatorSet.isStarted()がtrueを返す状況を想像できません。 – makovkastar

1

@Beforeメソッドで特定のテストのアニメーションを有効にすることができます。テストが完了したら、@Afterメソッドでアニメーションを再び無効にすることができます。そうすれば、その後のテストは影響を受けません。 テストルールを作成して、特定のクラスのアニメーションを有効/無効にすることもできます。here

+0

ありがとうございますが、それはエスプレッソとは関係ありません。私はちょうど時々テストデバイス上のアプリを使用したいが、それはスプラッシュ画面でクラッシュします。 – makovkastar

関連する問題