Tuesday, March 15, 2016

Konfigurasi Proguard untuk ButterKnife dan Otto

Apa itu ButterKnife??
Jika anda belum tahu apa itu ButterKnife, anda bisa membaca di sini , demikian juga dengan Otto , anda juga bisa membacanya di sini. Tulisan saya ini bermula ketika saya ingin meng-generate signed APK dimana aplikasi saya menggunakan ke dua library tersebut. Ketika saya saya mencoba untuk mem-build, saya mendapatkan warning sebagai berikut (klik pada gambar untuk memperbesar) :

dari baris pertama kita bisa melihat bahwa reference class annotation tidak ditemukan. Hal ini dikarenakan annotated methods dihapus oleh proguard. Untuk menghilangkan warning ini , anda bisa menambahkan beberapa konfigurasi pada proguard.
Berikut contoh konfigurasi yang bisa anda pasang pada proguard:
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keep class **$$ViewInjector { *; }

-keepclasseswithmembernames class * {
    @butterknife.* ;
}

-keepclasseswithmembernames class * {
    @butterknife.* ;
}
-keepattributes *Annotation*
-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}


Demikian tips dari saya , semoga bermanfaat :D

No comments:

Post a Comment