ButterKnife 8.0.1 @BindView 失敗,nullpointerexception
ButterKnife 8.0.1
@BindView 失敗,空指標異常,跟蹤進去,發現是XXXFragment的 XXXFragment$$ViewBinder 的類沒有生成。
經過google。發現瞭解決方案。記錄一下。
Per the readme, you need to include the butterknife-compiler
in
order for the generated code to be produced automatically:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } apply plugin: 'com.neenbedankt.android-apt' dependencies { compile 'com.jakewharton:butterknife:8.0.1' apt 'com.jakewharton:butterknife-compiler:8.0.1' }
Without this there is no generated code to be loaded and thus none of the fields get set.
You can verify ButterKnife is working by calling ButterKnife.setDebug(true)
and
looking in Logcat
簡單的說呢。就是之前只加了
compile 'com.jakewharton:butterknife:8.0.1'
沒有加上
所以要在Module的build.gradle 加上apt 'com.jakewharton:butterknife-compiler:8.0.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
在app 的build.gradle 頂部加上
apply plugin: 'com.neenbedankt.android-apt'
dependencies 加上
compile 'com.jakewharton:butterknife:8.0.1'
apt 'com.jakewharton:butterknife-compiler:8.0.1'