Ho creato un'app per Android con Butterknife e recentemente aggiornato a 7.0.1. Ho sostituito tutti gli usi @InjectView
e ButterKnife.inject
con la nuova funzione @Bind
e non ho problemi con le build di debug, ma l'app si arresta in modo anomalo all'avvio per le build di rilascio.Perché Butterknife @Bind fallisce nella versione di rilascio (dopo proguard)
Se commuto 'minifyEnabled
' su falso nel mio build.gradle allora posso generare una build di rilascio di lavoro.
Sto usando la configurazione di proguard che è documentata sul sito di Butterknife ma non sembra funzionare per me. Sto anche usando Dagger, Picasso e Flurry nella mia build.
mio 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.**
Grazie, che sembra aver risolto. –