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...)
我正在使用 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...)