2013-04-16 5 views
0

Я приближаюсь к размещению своего приложения в магазине Google Play, и я пытаюсь запутать Proguard. Он использует GAE и RequestFactory, и я получаю исключение «RequestFactory Validation Tool for ...». Увидели несколько сообщений по этому поводу и несколько ответов, но ничего окончательного и ничего не работает для меня. Я понимаю рефлексивные/символические проблемы и исключил интерфейс RequestFactory от обфускации, но безрезультатно. Может ли кто-нибудь предоставить упрощенный рабочий пример того, что должно войти в конфигурационный файл proguard, чтобы пройти через это успешно.Использование Proguard на подключенном Android-клиенте Android

Благодаря

ответ

0

Я не могу найти описание того, что RequestFactory Validation Tool делает внутренне, но есть вероятность, что он добавил аннотаций. шаг запутывания Proguard удаляет те, по умолчанию, но вы можете держать их:

-keepattributes *Annotation* 
+0

Я уже имел линии -keepattributes Подпись, RuntimeVisibleAnnotations, AnnotationDefault который я взял из другого поста , Я добавил ваше предложение, но безрезультатно. Это исключение, которое бросил java.lang.RuntimeException: RequestFactory ValidationTool должен быть запущен для типа com.client.MyRequestFactory RequestFactory – milleph

+0

я, наконец, получил это работает, я понял, что мой полученный интерфейс MyRequestFactory должен быть исключен, так было опция -keep интерфейс com.myapp.client. ** {*; } MyRequestFactory - единственное, что есть в пакете com.myapp.client. Он по-прежнему разбился. Затем я вернулся к чтению о инструменте проверки. Он генерирует класс MyRequestFactoryDeobfuscatorBuilder. Добавлено следующее -keep class com.myapp.client. ** {*; } И он начал работать. Слишком скоро праздновать - у меня есть ряд неожиданных исключений в других местах моего приложения ...... – milleph

4

Может быть поздно после года. Только это помогло бы для кого-то с помощью ProGuard для приложения двигателя, Добавьте это в файл proguard.cfg

# Needed to keep generic types and @Key annotations accessed via reflection 

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault 

-keepclassmembers class * { 
    @com.google.api.client.util.Key <fields>; 
} 

# Needed by google-http-client-android when linking against an older platform version 

-dontwarn com.google.api.client.extensions.android.** 

# Needed by google-api-client-android when linking against an older platform version 

-dontwarn com.google.api.client.googleapis.extensions.android.** 
Смежные вопросы