Proguard с Android и клиентом Google API

во-первых, извините, если в этой теме был ответ, но я не нашел его...

Я новичок в Android и Proguard. В конце разработки своего приложения я хочу уменьшить его размер с помощью proguard, конечно. Поскольку я использую некоторые библиотеки из клиента Google API в своем приложении, я добавил их как внешние банки.

Ну, мое приложение работает нормально без прохождения шага proguard, но когда я пытаюсь его экспортировать, начинается моя головная боль. Много предупреждений, которые я не знаю, как пропустить или расставить. Что-то вроде этого:

[2012-03-05 07:20:06 - CollaJoveThreads] Proguard returned with error code 1. See console
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable
[2012-03-05 07:20:06 - CollaJoveThreads] Warning: com.google.common.base.Equivalences$Impl$1: can't find referenced class javax.annotation.Nullable

и более похожие.

Я последовал рекомендациям разработчиков Google и добавил эти строки в свой proguard.cfg:

# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keepclassmembers class * {
  @com.google.api.client.util.Key <fields>;
}

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault,*Annotation*

-dontwarn sun.misc.Unsafe

но он продолжает появляться все эти предупреждающие сообщения. И когда я попытался использовать опцию «-dontwarn», мое приложение вылетает.

Я прочитал эти вопросы и многое другое:

Кто-нибудь может помочь?


person emiquelgavalda    schedule 05.03.2012    source источник
comment
Извините, я нашел это: в нем отсутствовал файл jar 'jsr305-1.3.9' (я раньше не осознавал). Спасибо за все.   -  person emiquelgavalda    schedule 06.03.2012


Ответы (1)


Привет, я знаю, что это уже было решено путем добавления файла jar jsr305 в ваш проект. Однако мне потребовалось некоторое время, чтобы понять, где я могу найти эту банку и что с ней делать.

Вы можете получить последнюю версию этого JAR-файла по адресу здесь. Загрузите последнюю версию JAR-файла. и поместите его в свою папку libs, затем добавьте его в свой путь сборки в Eclipse, и все должно быть в порядке.

Это исправило все мои проблемы.

person Cassie    schedule 20.06.2012
comment
Для пользователей Gradle просто добавьте compile 'com.google.code.findbugs:jsr305:2.0.2' в зависимости build.gradle. - person Jonik; 05.01.2014