Android ValueAnimator.start() 上的 NullPointerException

Android NullPointerException on ValueAnimator.start()

我正在使用 ValueAnimator 为视图设置动画,但每当我调用 start() 时它都会抛出 NullPointerException。

这是在我的代码中调用 start() 后的堆栈跟踪:

    java.lang.NullPointerException
        at android.animation.ValueAnimator.initAnimation(ValueAnimator.java:447)
        at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:495)
        at android.animation.ValueAnimator.start(ValueAnimator.java:913)
        at android.animation.ValueAnimator.start(ValueAnimator.java:923)

这是我创建和调用动画的代码部分:

    ValueAnimator va = new ValueAnimator();
    va.ofInt(somevalue, 0);
    va.setDuration(Game.ANIMATION_DURATION);
    va.addListener(new Animator.AnimatorListener() {
         @Override
         public void onAnimationStart(Animator animation) {//some code here
         }
         @Override
         public void onAnimationEnd(Animator animation) {//some code here
         }

         @Override
         public void onAnimationCancel(Animator animation) {}

         @Override
         public void onAnimationRepeat(Animator animation) {}
    });
    va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
         @Override
         public void onAnimationUpdate(ValueAnimator animation) {
                  //some code here
         }
    });
    va.setInterpolator(new DecelerateInterpolator());
    va.start();

我很确定创建实例的正确方法是这样的: ValueAnimator va = ValueAnimator.ofInt(someValue, 0);va.ofInt(...) 现在什么都不做。

如果您想使用非静态访问,请使用

ValueAnimator.setIntValues(int...)