Intereting Posts
Как уменьшить / размыть только часть экрана? Правильный способ преобразования байта в java в unsigned char * в C ++ и наоборот? Gradle (Android Studio) не будет компилировать 9 патчей Перспективная проекция в Android в приложении дополненной реальности Android Multi State switch Пространство между клавиатурой и EditText в Android Автоматический запуск нового действия в android Android: как удалить элемент из спискаView и arrayAdapter Нарисуйте гладкую линию между геотомами на Android Android: получить снимок изображения на SD-карте, учитывая Uri оригинального изображения Java: разные результаты при декодировании base64 строки с java.util.Base64 vs android.util.Base64 Как удалить строку заголовка в Android? Android, звуки уведомлений телефона, даже когда они молчат? Должен ли я проверять тихий режим? Предложения по созданию управления TreeView в Android Родные объявления Facebook в GridView: MediaView отображает серый прямоугольник

Почему Butterknife @Bind не работает в выпуске (после proguard)

Я создавал приложение для Android, используя Butterknife, и недавно обновил его до 7.0.1. Я заменил все использование @InjectView и ButterKnife.inject новой @Bind и не испытывал проблем с сборками отладки, но при @InjectView ButterKnife.inject при @Bind сбой при запуске приложения.

Если я переключу ' minifyEnabled ' на false в моем build.gradle, тогда я могу создать рабочую сборку выпуска.

Я использую конфигурацию proguard, которая задокументирована на сайте Butterknife, но, похоже, она не работает для меня. Я также использую Кинжал, Пикассо и Флеш в моей сборке.

Содержимое моей proguard-rules.pro:

 # ButterKnife -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } # Dagger -keepclassmembers,allowobfuscation class * { @javax.inject.* *; @dagger.* *; <init>(); } -keep class javax.inject.** { *; } -keep class **$$ModuleAdapter -keep class **$$InjectAdapter -keep class **$$StaticInjection -keep class dagger.** { *; } # Picaso -dontwarn com.squareup.okhttp.** # Flurry -keep class com.flurry.** { *; } -dontwarn com.flurry.** 

Solutions Collecting From Web of "Почему Butterknife @Bind не работает в выпуске (после proguard)"

У нас были аналогичные проблемы после обновления до 7.0.1, но вместо этого мы получили ANR.

Проблема заключается в том, что мы заменили раздел Butterknife Proguard новыми рекомендуемыми вариантами на веб-сайте ButterKnife.

Добавление -keepnames class * { @butterknife.Bind *;} в файл proguard устраняет наши проблемы.

С веб-сайта http://jakewharton.github.io/butterknife/ это показалось мне полезным:

 -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; }