Android YouTube / GDATA API не работает после запуска ProGuard - PullRequest
1 голос
/ 01 марта 2011

У кого-нибудь были проблемы с API YouTube, особенно после запуска Proguard? Мой код для загрузки видео с YouTube нормально работал до запуска ProGuard, после запуска ProGuard я получаю странное исключение

 ERROR/AndroidRuntime(10197): Caused by: java.lang.IllegalArgumentException: 
No parser defined for Content-Type: application/atom+xml; charset=UTF-8; type=feed

Я нигде не устанавливаю тип контента, и я использую файл proguard.cfg по умолчанию, который создается при создании нового проекта.
Кто-нибудь сталкивался с подобными проблемами после запуска proguard? Пробовал proguard без запутывания, без оптимизации но дает тот же результат.

1 Ответ

7 голосов
/ 02 ноября 2011

Не уверен, что google-api-client точно такой же, как упомянутые вами gdata, но он должен быть очень похож.Поскольку Proguard часто ломает ваш код, вы должны сказать ему, что он может и не может делать.Это ни в коем случае не чудодейственный инструмент, который понимает отражение.

Я должен был добавить это среди других:

-keepattributes *Annotation* # Needed by google-api-client
-keepattributes Signature # Needed by google-api-client 

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

# Needed by Guava (google-api-client)
-dontwarn sun.misc.Unsafe
...