Неразрешенная ссылка: ButterKnife

Я получаю указанную выше ошибку компилятора, но я не могу ее исправить, что бы я ни делал.

Моя активность

import butterknife.ButterKnife // Unresolved Reference: ButterKnife
import butterknife.BindView // Unresolved Reference: BindView

class MyActivity: AppCompatActivity() {

    @BindView(R.id.textView)
    lateinit var mTextView: TextView

    // ...

}

build.gradle (проект)

buildscript {
    repositories {
        jcenter()
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

build.gradle (модуль)

dependencies {
    annotationProcessor 'com.jakewharton:butterknife:10.2.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
}

То, что я пробовал до сих пор...

  1. Поискал в Интернете решения, включая эту запись SO.
  2. Удалил папку .idea и перезапустил
  3. Недействительный кеш и перезапустить
  4. Чистый проект
  5. Синхронизация Gradle
  6. Плакать

person El Sushiboi    schedule 24.03.2020    source источник
comment
Это может быть чувствительно к регистру, поэтому попробуйте масляный нож вместо масляного ножа.   -  person LemmyX    schedule 24.03.2020
comment
Масляный нож прав. На самом деле, когда я добавляю файл . (точка) после мастихина ничего не приходит в голову.   -  person El Sushiboi    schedule 24.03.2020


Ответы (2)


Вы должны использовать implementation 'com.jakewharton:butterknife:10.2.1' вместо annotationProcessor. Эта зависимость содержит ваш отсутствующий пакет, поэтому он должен быть implementation или api, если вы хотите использовать его в своем коде.

В этом случае annotationProcessor вам не подходит, потому что он обычно используется для генераторов кода, таких как butterknife-compiler.

person bvarga    schedule 24.03.2020
comment
Вот Это Да! просто так заработало! единственная причина, по которой я использовал annotationProcessor в первую очередь, заключалась в том, что компилятор выдавал мне предупреждение Добавить процессор аннотаций в путь процессора, используя annotationProcessor вместо реализации. Похоже, компилятор был глупым (что обычно не так) - person El Sushiboi; 24.03.2020

Вы добавили зависимость jcenter() в файл build.gradle вашего проекта (не приложения)?

   allprojects {
     repositories {
      ...
      jcenter()
      }
   }
person Kévin Giacomino    schedule 24.03.2020
comment
Хороший улов, но, к сожалению, он уже на месте. Я обновил свой пост, чтобы отразить ваше предложение. - person El Sushiboi; 24.03.2020