butterknife的使用(包含在各個功能模組module中引用)
阿新 • • 發佈:2019-01-30
一、具體使用步驟:1. 在moudle的build.gradle中進行相應jar包的下載,
2.如果想在library中引用(即除了app moudle外,其它的moudle),需要做如下操作1)在專案的build.gradle中加如下程式碼
2)在每個想使用butterknife的library的build.gradle頭部加入apply
二、使用注意1)之前的butterknife註解是不支援在library中使用的,library中定義的R檔案中id都不是final的,8.4.0之後的butterknife版本加入了對library project支援,所以在library中使用時,和之前有所差異,自動生成的
2)moudle的build.gradle中
要注意的一點,專案中如果存在一個baseMoudle和幾個依賴於baseMoudle的moudle話,頭部apply必須是加在每個moudle中,而不是base中,以及dependencies中的
也必須加在每個moudle中,只有
dependencies { compile 'com.jakewharton:butterknife:8.8.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1' }
2.如果想在library中引用(即除了app moudle外,其它的moudle),需要做如下操作1)在專案的build.gradle中加如下程式碼
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
}
}
2)在每個想使用butterknife的library的build.gradle頭部加入apply
apply plugin: 'com.android.library' apply plugin: 'com.jakewharton.butterknife'
二、使用注意1)之前的butterknife註解是不支援在library中使用的,library中定義的R檔案中id都不是final的,8.4.0之後的butterknife版本加入了對library project支援,所以在library中使用時,和之前有所差異,自動生成的
@BindView(R.id.user) EditText需要替換成username;
@BindView(R2.id.user) EditText username;按照官方文件來做是有問題的,注入不起作用,會報空指標,並且onclick事件也不起作用正確的使用步驟:1)專案build.gradle中
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'// 新增的部分
} }
2)moudle的build.gradle中
apply plugin: 'com.android.library' apply plugin: 'com.jakewharton.butterknife'
apply plugin: 'android-apt' //新新增
dependencies { compile 'com.jakewharton:butterknife:8.8.1' apt 'com.jakewharton:butterknife-compiler:8.8.1' }
要注意的一點,專案中如果存在一個baseMoudle和幾個依賴於baseMoudle的moudle話,頭部apply必須是加在每個moudle中,而不是base中,以及dependencies中的
apt 'com.jakewharton:butterknife-compiler:8.8.1'
也必須加在每個moudle中,只有
compile 'com.jakewharton:butterknife:8.8.1'
可以放在baseMoudle中作為公用部分