某些Android手机上的NoSuchMethodError

时间:2015-10-24 03:32:22

标签: android exception animation mobile nosuchmethoderror

我正在使用值动画师通过动画更改状态栏颜色,就像我的手机和模拟器上的魅力一样,但是当我将它发送给另一个人时,它会因NoSuchMethodError而崩溃,我无法弄清楚为什么,

  • 如果某些手机上有可用的方法,我该怎么检查?

  • 还有其他方法可以为状态栏设置颜色更改动画吗?

以下代码:

final ValueAnimator statusBarAnimator = ValueAnimator.ofArgb
            (ContextCompat.getColor(MainScreen.this, R.color.colorPrimary),
                    ContextCompat.getColor(MainScreen.this, R.color.colorPrimaryDark));
    statusBarAnimator.setDuration(500);
    statusBarAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        // how it works is that every time it updates, it goes to change the color by a little bit
        @Override
        public void onAnimationUpdate(ValueAnimator animation) {
            if (Build.VERSION.SDK_INT >= 21) {
                getWindow().setStatusBarColor((Integer) statusBarAnimator.getAnimatedValue());
            }
        }
    });

此处出现错误代码(来自Crash Analytics):

Fatal Exception: java.lang.NoSuchMethodError: android.animation.ValueAnimator.ofArgb
   at com.peter.georeminder.MainScreen.initView(MainScreen.java)
   at com.peter.georeminder.MainScreen.onCreate(MainScreen.java)
   at android.app.Activity.performCreate(Activity.java)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java)
   at android.app.ActivityThread.access$1100(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
   at android.os.Handler.dispatchMessage(Handler.java)
   at android.os.Looper.loop(Looper.java)
   at android.app.ActivityThread.main(ActivityThread.java)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
   at dalvik.system.NativeStart.main(NativeStart.java)

1 个答案:

答案 0 :(得分:0)

API21中添加了

ValueAnimator.ofArgb()。要在较低的API上实现此效果,请使用ArgbEvaluator(在API11中添加)。