某些 android 手机上的 NoSuchMethodError
NoSuchMethodError on certain android phones
我正在使用值动画器通过动画更改状态栏颜色,在我的 phone 和模拟器上效果很好,但是当我将它发送给另一个人时,它因 NoSuchMethodError 而崩溃,我不能'不知道为什么,
如果在某些 phone 上有可用的方法,我将如何检查?
还有其他方法可以为状态栏设置动画颜色变化吗?
代码如下:
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());
}
}
});
错误代码在这里(来自崩溃分析):
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.access00(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)
ValueAnimator.ofArgb() was added in API21. To achieve this effect on lower API's, use ArgbEvaluator(在 API11 中添加)。
我正在使用值动画器通过动画更改状态栏颜色,在我的 phone 和模拟器上效果很好,但是当我将它发送给另一个人时,它因 NoSuchMethodError 而崩溃,我不能'不知道为什么,
如果在某些 phone 上有可用的方法,我将如何检查?
还有其他方法可以为状态栏设置动画颜色变化吗?
代码如下:
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());
}
}
});
错误代码在这里(来自崩溃分析):
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.access00(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)
ValueAnimator.ofArgb() was added in API21. To achieve this effect on lower API's, use ArgbEvaluator(在 API11 中添加)。