2015-08-07 2 views
0

Недавно я добавил proguard в огромный проект с использованием последних версий библиотек Google Play Services и Suppport V4.Службы Google Play и поддержка V4 с ProGuard ... Проблемы?

Я ничего не добавлять об этих библиотеках Proguard конфигурационных файлов, я просто добавьте это:

-ignorewarnings 
-dontobfuscate 

Теперь я заметил, что в ProGuard выходного файл usage.txt (где можно увидеть весь код удален ProGuard) много кода из сервисов google play и поддержки android v4.

Я проверил официальную документацию и я не нашел ничего о добавлении исключений для поддержки v4 и сервисы Google Play, если вы используете ProGuard, я только что нашел это:

Примечание: директивы Proguard включены в Play services client библиотеки для сохранения необходимых классов. Плагин Android для Gradle автоматически добавляет файлы конфигурации ProGuard в пакете AAR (Android ARchive) и добавляет этот пакет в конфигурацию ProGuard . Во время создания проекта Android Studio автоматически создает файлы конфигурации ProGuard и свойства build.gradle для использования ProGuard. Чтобы использовать ProGuard с Android Studio, вы должны включить параметр в настройках ProGuard в ваших build.gradle buildTypes. Для получения дополнительной информации см. Руководство ProGuard.

Но проблема в том, что я не компиляции с Android Studio, я компиляции из командной строки с муравья и с затмением, я не использую Gradle, поэтому я не уверен, если я должен добавить что-то в ProGuard и я ничего не могу найти в официальной документации.

Будет ли я сталкиваться с проблемами в будущем, если я не добавлю что-то в конфигурацию proguard для этих библиотек?

ответ

0

У меня есть несколько проектов с v4 и не нужно ничего особенного в конфигурации proguard. Единственное, что я мог найти, это

# Supporting compatibility library 
-dontwarn android.support.** 

Не похоже, что это было бы вредно, если бы оно было удалено.

ОБНОВЛЕНО

для сервисов Google Play:

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 
    public static final *** NULL; 
} 
-keepnames @com.google.android.gms.common.annotation.KeepName class * 
-keepclassmembernames class * { 
    @com.google.android.gms.common.annotation.KeepName *; 
} 
+0

А что насчет сервисов Google Play с затмением (без Gradle)? – NullPointerException

+0

Я обновил свой ответ. – Sebastian

+0

Где вы находите официальный источник, который говорит, что обязательно добавлять эти строки кода в конфигурацию pro guard, если вы не используете gradle? – NullPointerException