2013-08-17 19 views
28

Używam biblioteki pomocy v7 do wyświetlania ActionBar w systemie Android 2.x. Działa to wystarczająco dobrze, ale po włączeniu Proguard musiałem naprawić kilka błędów klasy/metody.Konfiguracja programu Android Proguard dla biblioteki pomocy v7 Biblioteka ActionBar

Czy są jakieś wytyczne dotyczące klas, które należy zachować?

tej pory mam te:

-keep public class android.support.v7.internal.widget.ActionBarContainer 
-keep class android.support.v7.internal.widget.ActionBarView$HomeView 
-keep public class android.support.v7.internal.widget.ActionBarContextView 

wydaje się działać, ale teraz nie jestem przekonany, że nie padnie na pewnym etapie z powodu jakiejś innej klasy rzekomo wewnętrznego mowa w jakimś pliku XML .

Odpowiedz

4

Używam tego, nieco podobny do tego, co sugeruje wersji v4:

-keep class android.support.v7.internal.** { *; } 
-keep interface android.support.v7.internal.** { *; } 
+1

Gdzie znalazłeś tę sugestię v4? –

+0

Cóż, nie pamiętam. Jeśli Google to dla Ciebie, znajdziesz sporo referencji, w tym tutaj na SO. Może nie zostało to nigdzie oficjalnie zasugerowane, nie wiem, ale jest to logiczne i działa. :-) –

+0

Dodanie tych dwóch linii bez "wewnętrznego" (np. Android.support.v7. **) rozwiązało mój problem. Podobnie dodałem te linie dla v4. –

51

Rozwiązałem go:

-dontwarn android.support.v7.** 
-keep class android.support.v7.** { *; } 
-keep interface android.support.v7.** { *; } 
+0

Skąd to wziąłeś? czy Google ma to gdziekolwiek? Czy "**" oznacza rekurencyjnie wszystkie pliki i podfoldery? Jaka jest rola w "{}" (przepraszam, nie pamiętam)? –

+1

Oni tego nie używają? To jest dziwne. –

+6

Nie jest to zalecane. Zachowa wszystkie klasy biblioteki, nawet te, których nie potrzebujesz. Zobacz http://developer.android.com/tools/support-library/setup.html – HyBRiD

Powiązane problemy