【日常踩坑】ButterKnife:Attribute value must be constant
阿新 • • 發佈:2019-01-09
Attribute value must be constant
在搜尋Attribute value must be constant
後得到這樣的說明:
Injection does not work in library projects
意為:在AndroidStudio的library的module中無法使用ButterKnife。
——–2017年8月23日更新——–
經lyankj提醒,ButterKnife在8.1.0後期及之後版本中已經對【在library的module中使用butterknife】提供了支援:
通過gradle外掛的形式可以使得butterknife在library的module中使用。
所以在library的module中使用butterknife的操作步驟如下:
- 1 在project的build.gradle中的buildscript節點的repositories節點下新增
mavenCentral()
;在buildscript節點的dependencies節點下新增classpath 'com.jakewharton:butterknife-gradle-plugin:x.x.x'
(使用對應的版本號) - 2 在library的module的build.gradle的檔案開頭新增
apply plugin: 'com.jakewharton.butterknife'
;在dependcies節點下新增
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
親測後發現,哪怕在butterknife8.1.0後期及其之後的版本中不新增此外掛,仍然會報這個錯。這時候你就應該好好檢查一下是否依賴了該gradle外掛。為確保新增依賴無誤,還是遵循butterkinfe的官方文件為好。