在剛做項目之前,一直都沒有了解過組件化,都是在單一的模塊下使用,感覺使用簡單,就沒有留意那麼多了,知道在公司做項目時,才發現,原來在組件化下的Library中不能使用butterknife了,經過一番折騰,終於可以使用了,自butterknife8.0之後就可以使用了,原因在於library下的資源文件中定義id不是final類型了,,,,下面直接介紹如何使用吧
第一步:在Project的build.gradle文件中添加
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
第二步:在各個module中的build.gradle添加
apply plugin: 'com.android.library' (在library中不用添加,本身就有)
apply plugin: 'com.jakewharton.butterknife' (在主項目中可以不添加)
在dependencies中添加
dependencies {
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
第三步:在主項目中,使用Butterknife直接用R來引用資源
在library項目中使用Butterknife使用R2來引用資源,如下
這是在library中使用
class ExampleActivity extends Activity {
@BindView(R2.id.user)
EditText username;
@BindView(R2.id.pass)
EditText password;
...
}
這是在主項目中使用
class ExampleActivity extends Activity {
@BindView(R.id.user)
EditText username;
@BindView(R.id.pass)
EditText password;
...
}