Budowałem aplikację na Androida przy użyciu Butterknife, a ostatnio zaktualizowałem ją do wersji 7.0.1. Wymieniłem wszystkie użycie @InjectView
i ButterKnife.inject
z nową funkcją @Bind
i nie mam problemów z kompilacją debugowania, ale aplikacja ulega awarii podczas uruchamiania w celu wydania wersji.Dlaczego Butterknife @Bind kończy się niepowodzeniem w tworzeniu wersji (po proguardzie)?
Jeśli zmienię "minifyEnabled
" na false w moim build.gradle, będę mógł wygenerować kompilację wydania roboczego.
Używam konfiguracji progu, która jest udokumentowana na stronie Butterknife, ale wydaje się, że nie działa ona dla mnie. Używam również Dagger, Picasso i Flurry w mojej kompilacji.
Moi proguard-rules.pro treść:
# 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.**
Dzięki, że wydaje się być rozwiązany. –