2015-06-04 11 views
19

Po aktualizacji zależności na kompilacji Gradle Android, aby użyć com.android.support:support-v4:22.2.0 z lokalnego repozytorium dodatków Maven (w ramach SDK), Proguard zaczął rzucać te problemy.Konfiguracja Proguard dla systemu Android Wsparcie 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) 

prostu dodając -dontwarn android.support.v4.** rozwiązuje problemu, ale chciałbym się bardziej konkretne/eleganckie rozwiązanie, niż ignorując wszystkie problemy dotyczące pakietu support.v4

Czy ktoś może powiedzieć, jakie zasady powinny być dodawane, więc te classes/@ interfejsy są poprawnie przetwarzane przez Proguard?

+1

Mam ten sam problem. – sanath01

+1

Nawet ja napotykałem ten problem wiele razy, , ale jedynym rozwiązaniem mogłem używać '-dontwarn' –

Odpowiedz

12

Jedynym rozwiązaniem jest to, o czym wspomniałeś, tj. -dontwarn android.support.v4.**. Zostało to faktycznie pobrane z <path-to-android-sdk>/tools/proguard/proguard-android.txt, gdzie jest napisane:

# 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

Można bezpiecznie ustawić, nie ostrzegaj o klasach biblioteki pomocy technicznej zgodnie z zespołem Android. Możesz to zrobić przez:

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

To niewiele pomaga, ponieważ dontwarn nie rozwiązuje problemu, to ukrywa ... –

+0

Jaki problem? Czy Twoja aplikacja się zawiesza? – Splaktar

+0

Nie, ale kompilacja jest, i to mnie martwi –

Powiązane problemy