Службы Google Play и поддержка V4 с проблемами ProGuard?

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

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

-ignorewarnings
-dontobfuscate

Теперь я заметил, что в выходном файле использования proguard.txt (где вы можете увидеть весь код, удаленный proguard) много кода из сервисов Google Play и поддержки Android v4.

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

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

Но проблема в том, что я компилирую не с помощью Android Studio, я компилирую из командной строки с помощью ant и eclipse, я не использую gradle, поэтому я не уверен, должен ли я что-то добавить в файл конфигурации proguard, и я могу' В официальной документации ничего не нашел по этому поводу.

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


person NullPointerException    schedule 07.08.2015    source источник


Ответы (1)


У меня есть несколько проектов с 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 *;
}
person Sebastian    schedule 07.08.2015
comment
А как насчет сервисов Google Play с eclipse (без градиента)? - person NullPointerException; 07.08.2015
comment
где вы найдете официальный источник, в котором говорится, что эти строки кода необходимо добавить в конфигурацию pro guard, если вы не используете gradle? - person NullPointerException; 07.08.2015
comment
Честно говоря, сейчас не могу найти. Что я могу вам сказать, так это то, что это работает для нас с использованием IAB и Google Analytics. - person Sebastian; 07.08.2015
comment
Я протестировал GCM и Admob без добавления какой-либо строки конфигурации proguard для сервисов Google Play, и она работает, поэтому я не уверен, нужно ли добавлять. Я очень близок к пределу 65 000 методов Android, поэтому я не могу увеличивать количество своих методов, если это не является строго необходимым - person NullPointerException; 07.08.2015