设置自定义进度条时出现 NoSuchMethodError
NoSuchMethodError when setting a custom progress bar
我正在使用自定义进度条,它在我的身体 phone 上工作得很好。但是,我创建了我的应用程序的平板电脑布局并在模拟器上进行了尝试,它给了我这个错误消息 - NoSuchMethodError
这是我设置自定义进度条的代码:
第 34 行是我设置 interterminateDrawable 的地方。
最低 sdks 版本为 14
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mProgressBar.setVisibility(View.INVISIBLE);
mProgressBar.setIndeterminateDrawable(getDrawable(R.drawable.progress));
这是日志:
java.lang.NoSuchMethodError: koemdzhiev.com.blinkmessage.LoginActivity.getDrawable
at koemdzhiev.com.blinkmessage.LoginActivity.onCreate(LoginActivity.java:34)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access0(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
The getDrawable()
convenience method Context
已添加到 API 级别 21。您的平板电脑可能 运行 是旧版本。
The minimum sdks version is 14
构建工具应该在此处抱怨您使用 getDrawable()
。要么将 minSdkVersion
提高到 21,要么使用其他方法,例如 Resources
上的 getDrawable()
方法(您可以通过调用 getResources()
获得 Resources
你的 activity).
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
seekBar.setProgressTintList(ColorStateList.valueOf(ContextCompat.getColor(main_activity, R.color.your_color)));
}
else
{
seekBar.getProgressDrawable().setColorFilter(main_activity.getResources().getColor(R.color.your_color), PorterDuff.Mode.MULTIPLY);
}
我正在使用自定义进度条,它在我的身体 phone 上工作得很好。但是,我创建了我的应用程序的平板电脑布局并在模拟器上进行了尝试,它给了我这个错误消息 - NoSuchMethodError
这是我设置自定义进度条的代码:
第 34 行是我设置 interterminateDrawable 的地方。
最低 sdks 版本为 14
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mProgressBar.setVisibility(View.INVISIBLE);
mProgressBar.setIndeterminateDrawable(getDrawable(R.drawable.progress));
这是日志:
java.lang.NoSuchMethodError: koemdzhiev.com.blinkmessage.LoginActivity.getDrawable
at koemdzhiev.com.blinkmessage.LoginActivity.onCreate(LoginActivity.java:34)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access0(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
The getDrawable()
convenience method Context
已添加到 API 级别 21。您的平板电脑可能 运行 是旧版本。
The minimum sdks version is 14
构建工具应该在此处抱怨您使用 getDrawable()
。要么将 minSdkVersion
提高到 21,要么使用其他方法,例如 Resources
上的 getDrawable()
方法(您可以通过调用 getResources()
获得 Resources
你的 activity).
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
seekBar.setProgressTintList(ColorStateList.valueOf(ContextCompat.getColor(main_activity, R.color.your_color)));
}
else
{
seekBar.getProgressDrawable().setColorFilter(main_activity.getResources().getColor(R.color.your_color), PorterDuff.Mode.MULTIPLY);
}