記錄kotlin引入註解產生的編譯錯誤:3rd-party Gradle plug-ins may be the cause
阿新 • • 發佈:2018-11-28
今天在kotlin的專案中,引入dagger的時候出現了一些問題,下面做個記錄。
- 引入dagger需要引入了kapt這個三方的外掛,但是該組建導致編譯出現了問題。
- 百度一堆解答
好多部落格都試了並不管用,最後在stakoverflow上找到了
傳送門
這個bug早就在被提出了issu了,好多文章各種刪東西還寫的都一樣,就是試了發現不行。
-
使用註解的時候要注意一些問題,如使用ButterKnike的話需要將annotationProcessor替換為kapt
-
上面說到kapt下面順便提一下,如果你在專案中使用了butterknike的話,它的引入方式也需要變化,否則將無法找到控制元件,需要寫成如下:
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'//原來的寫法
kapt 'com.jakewharton:butterknife-compiler:8.8.1'//修改後的
- 並且在使用butterknike的時候要注意需要添加註解 @JvmField 該註解是為了宣告該引數不是private的。報錯資訊如下:
錯誤: @BindView fields must not be private or static. (test.juyoufuli.com.myapplication.mvp.ui.webview.WebViewActivity.toolbar_back) private android.widget.RelativeLayout toolbar_back;
也可以新增internal修飾(模組內使用,如果需要隔離的話)