【问题标题】:Android NullPointerException on ValueAnimator.start()ValueAnimator.start() 上的 Android NullPointerException
【发布时间】:2015-06-09 20:51:41
【问题描述】:

我正在使用 ValueAnimator 为 View 设置动画,但每当我调用 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();

【问题讨论】:

  • 你的代码中的 somevalue 是什么?此外,在顶部为您的代码添加一个 try-catch。

标签: java android nullpointerexception android-animation


【解决方案1】:

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

【讨论】:

  • 是的。因为ofInt是一个静态方法
【解决方案2】:

如果你想使用非静态访问使用

ValueAnimator.setIntValues(int...)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-17
    相关资源
    最近更新 更多