Intereting Posts
Открытие Sqlite Db в командной строке HTML5 <video> не воспроизводится на эмуляторе Android 4.0 Android Share – Facebook SDK – ShareActionProvider Как получить идентификатор игры Google Play с новыми обновленными игровыми играми Google Gamer ID? Android JobScheduler: если вы планируете одну и ту же работу с периодическим временем, возобновляет ли она период? Разница между услугами и широковещательными приемниками Как отключить MediaPlayer в android Самопроверка подписи APK Каков правильный способ проверки доступности мобильной сети (без подключения к данным) Файл манифеста Android со свойствами из другого файла свойств Имеет ли фрагмент с каждым действием хорошую практику (на базе Android Studio)? Android Studio: проверьте тип пользовательской сборки Полноэкранный диалог с использованием прозрачного StatusBar Является ли Secure.ANDROID_ID уникальным для каждого устройства? Анимационный список, не работающий в Android 5.0 (Lollipop)

Конфигурация ProGuard для AndroidPlot

Начиная с создания версии версии моего приложения с включенным ProGuard, мой стиль графика сбрасывается до значения по умолчанию, и я вижу много предупреждений в Logcat, сообщающих мне о неподдерживаемых параметрах:

Ошибка раздувания XML: сеттер для поля «[…]» не существует.

Я определил это, исходя из конфигуратора AndroidPlot, но не нашел официальной конфигурации ProGuard для этого проекта.

Механизм, с помощью которого AndroidPlot устанавливает параметры конфигурации, в значительной степени зависит от отражения, и в этом свете я решил, что бесполезно пытаться запутать что-либо внутри этой библиотеки:

-keep class com.androidplot.** { *; } 

В моем случае я использовал proguard для отладочных сборников, и он работал нормально. Затем я запустил сборку релизов (которая добавляет обфускацию в конфигурацию proguard), и она разбилась, когда пыталась раздуть XYPlot в представлении.

Бинарная строка XML-файла # 12: двоичная строка XML-файла # 12: ошибка раздувания класса com.androidplot.xy.XYPlot

Чтобы исправить это, я просто настроил proguard, чтобы не обфускать имена любых объектов androidplot:

 -keepnames class com.androidplot.**