Gradle imprime la advertencia aunque se selecciona SuppressWarnings

Tengo una aplicación Android importada a Android Studio. Tiene algunas bibliotecas Java incluidas. Todo funciona hasta ahora.

El siguiente método:

@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); } 

Imprime siempre una advertencia de depreciación:

 :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 advertencia

Este no es el único @SuppressWarnings ("deprecation") en mi proyecto. En otros lugares la advertencia no se imprime …

Por ejemplo:

  @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); } } 

Desde mi AndroidManifest:

 <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="21" /> 

¿Cómo puedo deshacerme de este mensaje de advertencia? No quiero dar vuelta de las advertencias global o algo.

EDIT: Si acabo de llamar a getDrawable con el parámetro Theme, porque esto sucede en el dispositivo SDK15:

 java.lang.NoSuchMethodError: android.content.res.Resources.getDrawable at de.ansat.terminal.activity.widgets.druckAssistent.FahrkartenArtSelector$3.getDrawable(FahrkartenArtSelector.java:128) 

He descubierto que por razones desconocidas este código activa la advertencia:

 private Drawable getShadow(Context context) { @SuppressWarnings("deprecation") final Drawable drawable = context.getResources().getDrawable(R.drawable.shadow_top); return drawable; } 

Aunque este código equivalente no:

 private Drawable getShadow(Context context) { final int resId = R.drawable.shadow_top; @SuppressWarnings("deprecation") final Drawable drawable = context.getResources().getDrawable(resId); return drawable; } 

Extraer un método auxiliar también parece funcionar y solucionado el problema para mí:

 @SuppressWarnings("deprecation") private Drawable getDrawable(Context context, int resId) { return context.getResources().getDrawable(resId); } 

Hazlo con @SuppressWarnings ("all") para probar

@SuppressWarnings anotación de @SuppressWarnings es para las advertencias del compilador de Java. Para las advertencias de pelusa, use

 @SuppressLint("NewApi") 

o

 @TargetApi(android.os.Build.VERSION_CODES.JELLY_BEAN) 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.