Intereting Posts
Как сохранить данные с камеры на диск с помощью MediaStore на Android? ScrollTo, scrollBy, smoothScrollTo, smoothScrollTo не работает в ScrollView после добавления вида в дочерний макет Явный прозрачный градиент для Android XML Ошибка Android: java.net.SocketException: сокет закрыт Что означает «Скрытый конструктор, вызываемый более одного раза за процесс»? Как зарегистрировать пользовательский HTML-элемент в качестве виджета в GWT Расширенная библиотека RecyclerView – примеры кода Как добавить кнопку Facebook Share в приложении для Android Быстрое развертывание приложения для Android-эмулятора всегда сбой Использование ContentResolver вместо ContentProviderClient в SyncAdapter Android: назначение константного значения xml-элементу Google Maps Android api v2 и текущее местоположение Как воспроизвести звук родной камеры на Android Зависимость ListPreference Обновление библиотеки поддержки Android до 23.2.0 вызывает ошибку: XmlPullParserException Бинарная строка XML-файла # 17 <vector> требует viewportWidth> 0

Возможные проблемы при обфускации с помощью Proguard

Мое приложение отлично работает до обфускации, но когда я включаю proguard, я получаю следующую ошибку:

2013-05-02 13:43:58.772 E 30138/AndroidRuntime: FATAL EXCEPTION: main java.lang.NumberFormatException: Invalid long: "0.20" at java.lang.Long.invalidLong(Long.java:125) at java.lang.Long.parse(Long.java:362) at java.lang.Long.parseLong(Long.java:353) at java.lang.Long.parseLong(Long.java:319) at com.sourcetone.data.model.Station.long getId()(SourceFile:195) at com.sourcetone.STStationListFragment.void deleteStation(com.sourcetone.data.model.Station)(SourceFile:298) at com.sourcetone.STStationListFragment.void access$4(com.sourcetone.STStationListFragment,com.sourcetone.data.model.Station)(SourceFile:293) at com.sourcetone.STStationListFragment$ArrayListAdapter$1.void onClick(android.view.View)(SourceFile:274) at android.view.View.performClick(View.java:3528) at android.view.View$PerformClick.run(View.java:14217) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4482) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:561) at dalvik.system.NativeStart.main(Native Method) 2013-05-02 13:43:58.803 W 472/ActivityManager: Force finishing activity com.sourcetone/.STMainActivity 

Конфигурация моей proguard имеет следующее:

 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 

Так что Parcelable должен быть прав? Недопустимый Длинный, что он бросает, на самом деле является другой частью моего запроса, поэтому он читает неправильный номер. Должен ли я сохранять класс HttpResponse? Что еще это может быть?

Solutions Collecting From Web of "Возможные проблемы при обфускации с помощью Proguard"

 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 

Не сохраняет весь контент вашего класса неповрежденным, он просто сохраняет имя класса и метод CREATOR.

Попытайтесь сохранить поля в своем классе Parcelable, добавьте что-то вроде:

 -keepclassmembers class * implements android.os.Parcelable { public <fields>; } 
 -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } 

Он просто сохранит имя класса и CREATOR.

Вы должны изменить его на

 -keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator CREATOR; } 

Правила Android по умолчанию включают приведенную выше инструкцию и будут применены к вашему проекту, если вы оставите по умолчанию заданное определение градиента:

 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'