Butter Knife - Android library statistics - AppBrain
バージョンを上げてみると落ちるのでなぜかな, と.
これまでAndroid開発でannotation processingを実行したい場合はhvisser/android-aptを利用するのが王道となっていましたが、Android Gradle plugin version 2.2から公式にサポートが開始されました。
android-apt becomes obsolete - Qiita
2016-10-04
From apt to annotationProcessor
As of the Android Gradle plugin version 2.2, all functionality that was previously provided by android-apt is now available in the Android plugin. This means that android-apt is officially obsolete 😉
hvisser / android-apt / wiki / Migration — Bitbucket
Reflection を利用していた ButterKnife も予定通りに,
実行時に全力でReflectionするButter Knifeと違い・・・(c.f. Butter KnifeもAnnotation Processingする方式に切り替えるっぽい? => Split the compiler and runtime into separate artifacts. by serj-lotutovici · Pull Request #323 · JakeWharton/butterknife).
Butter Knife、今までありがとう。 Data Binding、これからよろしく。 - Qiita
JakeWharton on Aug 1, 2015
This dependency can probably be removed
ButterKnife 8.4.0 で, Gradle Plugin の annotation processor を利用するようになり, android-apt を利用が不要になっていました.
-Note: If you are using the new Jack compiler with version 2.2.0 or newer you do not need the
-'android-apt' plugin and can instead replace `apt` with `annotationProcessor` when declaring the
-compiler dependency.
Just use 'annotationProcessor' for instructions. · JakeWharton/butterknife@716e1f3
この android-apt 利用時の記述が無駄にあると, フィールドにバインドされずにリスナーセットなど操作時に「んおっ?」となります.
まとめ
Gradle Android plugin 2.2.+ で ButterKnife 8.4.+ の場合 android-apt は不要.
以下2行のみ. proguardの記述不要.
dependencies {
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}
Annotation Processor のこれまで流れを知っておけばハマることもなかったのだろうと思います.
ButterKnife GitHubリポジトリ の issue などから調べようとすると, 謎の漢字での書き込みが激しく逆に混乱してしまいました.