2015-07-07 2 views
11

Я занимаюсь разработкой Android-приложения с использованием Butterknife и недавно обновлен до 7.0.1. Я заменил все @InjectView и ButterKnife.inject с помощью новой функции @Bind и не испытывал проблем с сборками отладки, но при сбоях приложения при сбое приложения происходит сбой.Почему Butterknife @Bind не работает в выпуске (после proguard)

Если я переключу '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.** 

ответ

9

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

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

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

+0

Спасибо, что, кажется, решили. –

7

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

-keep class butterknife.** { *; } 
-dontwarn butterknife.internal.** 
-keep class **$$ViewBinder { *; } 

-keepclasseswithmembernames class * { 
    @butterknife.* <fields>; 
} 

-keepclasseswithmembernames class * { 
    @butterknife.* <methods>; 
} 
+0

этот чиновник из Джейка –

 Смежные вопросы

  • Нет связанных вопросов^_^