NullPointerException in AnimatorSet.start on Android 4.4



我正在尝试使用ObjectAnimator和AnimatorSet启动动画。该代码在版本>= Android 5.0 上运行良好,但在 Kitkat 4.4 上抛出 NullPointerException

 Caused by: java.lang.NullPointerException
        at 
android.animation.PropertyValuesHolder.setupSetterAndGetter(PropertyValuesHolder.java:505)
        at android.animation.ObjectAnimator.initAnimation(ObjectAnimator.java:487)
        at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:517)
        at android.animation.ValueAnimator.start(ValueAnimator.java:936)
        at android.animation.ValueAnimator.start(ValueAnimator.java:946)
        at android.animation.ObjectAnimator.start(ObjectAnimator.java:465)
        at android.animation.AnimatorSet.start(AnimatorSet.java:563)

以下是代码片段:

public void playAnimation(Button doneButton, AnimatorEndListener endListener) {
     long animDuration = 880; 
     ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(bottomContentControllers, "alpha", 1f, 0f);
     float value = (float)(0 - doneButton.getHeight() - doneButton.getTop());
     final ObjectAnimator slideUpDoneButton = ObjectAnimator.ofFloat(doneButton, "translationY",0f, value);
     final AnimatorSet animSet = new AnimatorSet();
     alphaAnimator.setDuration(animDuration);
     slideUpDoneButton.setDuration(animDuration);
     animSet.playTogether(alphaAnimator, slideUpDoneButton);
     if(endListener != null) {
        animSet.addListener(endListener);
     }
     animSet.start();
    }

解决了!不知何故,目标视图底部内容控制器在行中:

ObjectAnimator alphaAnimator = ObjectAnimator.ofFloat(bottomContentControllers, "alpha", 1f, 0f);

在代码中的某个时刻被取消。确保它永远不会达到空值,并添加了空检查以使其正常工作。

最新更新