2015-06-04 20 views
19

Dopo aver aggiornato le dipendenze sul build Gradle Android per utilizzare com.android.support:support-v4:22.2.0 dal repository Maven extra locale (all'interno dell'SDK), Proguard ha iniziato a lanciare questi problemi.Configurazione Proguard per supporto Android v4 22.2.0

Warning: android.support.v4.app.DialogFragment: can't find referenced class android.support.v4.app.DialogFragment$DialogStyle 
Warning: android.support.v4.app.FragmentTransaction: can't find referenced class android.support.v4.app.FragmentTransaction$Transit 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$ResolvedLayoutDirectionMode 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$LayoutDirectionMode 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$LayerType 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$AccessibilityLiveRegion 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$ImportantForAccessibility 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$OverScroll 
Warning: android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$EdgeGravity 
Warning: android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$LockMode 
Warning: android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$State 
Warning: there were 11 unresolved references to classes or interfaces. 
     You may need to add missing library jars or update their versions. 
     If your code works fine without the missing classes, you can suppress 
     the warnings with '-dontwarn' options. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) 

Semplicemente aggiungendo -dontwarn android.support.v4.** risolve il problema, ma mi piacerebbe una soluzione più specifica/elegante, che ignorare tutti i problemi sul pacchetto support.v4

Qualcuno può dire che cosa dovrebbero essere aggiunte le regole, in modo da questi le classi/le interfacce @ sono correttamente elaborate da Proguard?

+1

Ho lo stesso problema. – sanath01

+1

anche io ho affrontato questo problema un sacco di volte, ma l'unica soluzione che potevo è usare '-dontwarn' –

risposta

12

L'unica soluzione è quello che hai detto, cioè -dontwarn android.support.v4.**. Questo è effettivamente preso dal <path-to-android-sdk>/tools/proguard/proguard-android.txt, dove si dice:

# The support library contains references to newer platform versions. 
# Don't warn about those in case this app is linking against an older 
# platform version. We know about them, and they are safe. 
-dontwarn android.support.** 
3

È sicuro impostare non avvisare per le classi della libreria di supporto in base al team di Android. È possibile farlo attraverso:

## Support library 
-dontwarn android.support.** 
+1

Questo non aiuta molto, perché dontwarn non risolve il problema, lo nasconde ... –

+0

Quale problema? La tua app si arresta in modo anomalo? – Splaktar

+0

No, ma la build è, e questo mi preoccupa –

Problemi correlati