2015-04-15 25 views
5

Ich habe eine Android-App in Android Studio importiert. Es enthält einige Java-Bibliotheken. Alles funktioniert so weit.Gradle Drucke Warnung obwohl SuppressWarnings eingestellt ist

Die folgende Methode:

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

druckt immer eine Abwertung Warnung:

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

Dies ist nicht die einzige @SuppressWarnings ("deprecation") in meinem Projekt. An anderen Stellen wird die Warnung nicht ... gedruckt

Zum Beispiel:

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

Aus meiner AndroidManifest:

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

Wie kann ich diese Warnmeldung loszuwerden? Ich möchte Warnungen nicht global oder etwas drehen.

EDIT: Wenn ich nur getDrawable mit Theme-Parameter nennen, von Ursache geschieht dies auf SDK15 Gerät:

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

Antwort

1

ich gefunden habe, dass aus unbekannten Gründen diesen Code löst die Warnung:

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

Während dieses entsprechende Code nicht:

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

eine Hilfsmethode Extrahierung scheint auch zu arbeiten und löste das Problem für mich:

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

Die Helfer-Methode den Trick, danke! –

0

es tun mit @SuppressWarnings ("alle") zu testen

0

@SuppressWarnings Anmerkung für Java Compiler-Warnungen ist. Für Fusseln Warnungen, verwenden Sie entweder

@SuppressLint("NewApi") 

oder

@TargetApi(android.os.Build.VERSION_CODES.JELLY_BEAN) 
Verwandte Themen