我有一个Android应用导入Android Studio。它包含一些Java库。一切都运作到目前为止。
以下方法:
@SuppressWarnings("deprecation")
private Drawable getDrawable() {
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT_WATCH)
return activity.getResources().getDrawable(R.drawable.separator_gradient, activity.getTheme());
else
return activity.getResources().getDrawable(R.drawable.separator_gradient);
}
始终打印折旧警告:
:androidAnsatTerminal:compileDebugJava
C:\...\src\main\java\de\ansat\terminal\activity\widgets\druckAssistent\FahrkartenArtSelector.java:131: warning: [deprecation] getDrawable(int) in Resources has been deprecated
return activity.getResources().getDrawable(R.drawable.separator_gradient);
^
1警告
这不是我项目中唯一的@SuppressWarnings("弃用")。在其他地方,不打印警告......
例如:
@SuppressWarnings("deprecation")
private void setBackgroundToNull(ImageView imgRight) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
imgRight.setBackgroundDrawable(null);
} else {
imgRight.setBackground(null);
}
}
来自我的AndroidManifest:
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="21" />
如何摆脱此警告讯息? 我不想在全球或其他地方发出警告。
编辑: 如果我只使用Theme参数调用getDrawable,原因是这发生在SDK15设备上:
java.lang.NoSuchMethodError: android.content.res.Resources.getDrawable
at de.ansat.terminal.activity.widgets.druckAssistent.FahrkartenArtSelector$3.getDrawable(FahrkartenArtSelector.java:128)
答案 0 :(得分:1)
我发现由于未知原因,此代码会触发警告:
private Drawable getShadow(Context context) {
@SuppressWarnings("deprecation")
final Drawable drawable = context.getResources().getDrawable(R.drawable.shadow_top);
return drawable;
}
虽然这个等效代码没有:
private Drawable getShadow(Context context) {
final int resId = R.drawable.shadow_top;
@SuppressWarnings("deprecation")
final Drawable drawable = context.getResources().getDrawable(resId);
return drawable;
}
提取辅助方法似乎也起作用并为我解决了这个问题:
@SuppressWarnings("deprecation")
private Drawable getDrawable(Context context, int resId) {
return context.getResources().getDrawable(resId);
}
答案 1 :(得分:0)
使用@SuppressWarnings(“all”)来测试
答案 2 :(得分:0)
@SuppressWarnings
注释用于Java编译器警告。对于lint警告,请使用
@SuppressLint("NewApi")
或
@TargetApi(android.os.Build.VERSION_CODES.JELLY_BEAN)