ProGuard не работает при обновлении до Android SDK 23

Я пытаюсь обновить приложение Umweltzone для Android до SDK 23. Поэтому я изменяю конфигурацию проекта следующим образом:

// Excerpt from Umweltzone/build.gradle
compileSdkVersion 23
// ...
compile "com.android.support:design:23.1.1"

Когда я создаю версию выпуска, она не работает с этой ошибкой (конечная часть):

...
Примечание: было 3 ссылки на неизвестные классы.
Вам следует проверить конфигурацию на наличие опечаток.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass)

Примечание. Было 2 класса, пытавшихся получить доступ к окружающим классам с помощью отражения.
Вам следует рассмотреть возможность сохранения атрибутов внутренних классов (используя '-keepattributes InnerClasses').
(http://proguard.sourceforge.net/manual/troubleshooting.html#attributes)

Примечание: в сохраненных членах класса было 100 неподдерживаемых классов дескрипторов. Вам следует явно сохранить упомянутые классы (используя '-keep').
(http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass)

Примечание. Обнаружено 5 неразрешенных динамических ссылок на классы или интерфейсы.
Вам следует проверить, нужно ли указывать дополнительные файлы jar программы.
(http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass)

Примечание: было 3 доступа к членам класса посредством самоанализа.
Вам следует рассмотреть возможность явного сохранения упомянутых членов класса (используя '-keep' или '-keepclassmembers').
(http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember)

Предупреждение: обнаружена 1 неразрешенная ссылка на члены класса библиотеки.
Вероятно, вам необходимо обновить версии библиотеки.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember)

Предупреждение: Исключение при обработке задачи java.io.IOException: Сначала исправьте приведенные выше предупреждения.
:Umweltzone:transformClassesAndResourcesWithProguardForRelease FAILED

ОШИБКА: сборка не удалась с исключением.

  • Что пошло не так: не удалось выполнить задачу ':Umweltzone:transformClassesAndResourcesWithProguardForRelease'.
    > java.io.IOException: Сначала исправьте приведенные выше предупреждения.

Релизная сборка работает с SDK 22. Конфигурацию ProGuard можно найти здесь< /а>. Полный вывод сборки можно найти здесь, так как StackOverflow не позволяет мне вставлять сюда из-за ограничений по длине.


person JJD    schedule 13.01.2016    source источник


Ответы (1)


Придерживайтесь сообщения об ошибке, т. е. сначала исправьте приведенные выше предупреждения.

Предупреждение выше:

com.google.android.gms.auth.GoogleAuthUtil: can't find referenced method
'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,
java.lang.CharSequence,android.app.PendingIntent)' in library class android.app.Notification

Скорее всего, вам не нужен этот метод. Таким образом, вы можете избавиться от предупреждения, добавив следующую строку в конфигурацию proguard:

-dontwarn com.google.android.gms.**
person Codo    schedule 13.01.2016
comment
Хороший! Это фактически исправило сборку. Можете ли вы объяснить, почему это предупреждение появляется, хотя я просто увеличил версию SDK, но не изменил код? - person JJD; 13.01.2016
comment
Похоже на сбой в последней версии сервисов Google Play (или библиотеки поддержки). - person Codo; 13.01.2016