2013-08-17 4 views
28

Я использую библиотеку поддержки V7, чтобы показать ActionBar на Android 2.x. Он работает достаточно хорошо, но мне пришлось исправить несколько ошибок класса/метода после включения Proguard.Конфигурация Android Proguard для библиотеки поддержки V7 ActionBar

Есть ли какие-либо рекомендации по сохранению классов?

До сих пор у меня есть эти:

-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 

Это, кажется, работает сейчас, но я не так уверен, что он не будет врезаться на каком-то этапе из-за какой-то другой якобы внутреннего класса, указанного в какой-то XML-файл ,

ответ

4

Я использую это, несколько похож на какую версию v4 предложил:

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

Где вы нашли это предложение для v4? –

+0

Ну, я не могу вспомнить. Если вы Google для этого, вы найдете немало ссылок, в том числе здесь на SO. Возможно, это было официально не предложено нигде, я не знаю, но это довольно логично, и это тоже работает. :-) –

+0

Добавление этих двух строк без «внутреннего» (например, android.support.v7. **) решило мою проблему. Точно так же я добавил эти строки для v4. –

51

Я решил его:

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

Откуда у вас это получилось? У Google это есть? Рекурсивно ли означает «**» все файлы и подпапки? Какая часть внутри «{}» (извините, я не помню)? –

+1

Они не используют его? Это странно. –

+6

Это не рекомендуется. Он будет хранить все классы библиотеки, даже те, которые вам не нужны. См. Http://developer.android.com/tools/support-library/setup.html. – HyBRiD

Смежные вопросы