1. 程式人生 > >記錄kotlin引入註解產生的編譯錯誤:3rd-party Gradle plug-ins may be the cause

記錄kotlin引入註解產生的編譯錯誤:3rd-party Gradle plug-ins may be the cause

今天在kotlin的專案中,引入dagger的時候出現了一些問題,下面做個記錄。

  1. 引入dagger需要引入了kapt這個三方的外掛,但是該組建導致編譯出現了問題。
  2. 百度一堆解答
    好多部落格都試了並不管用,最後在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修飾(模組內使用,如果需要隔離的話)

搜尋問題的話還是覺得谷歌靠譜點,百度排名靠前的好多都沒有價值。