В моем проекте такие зависимости:
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support:design:26.1.0'
И такой баттеркнайф:
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
Все шикарно работает.
А теперь беру - и экскремента ради обновляю баттеркнайф до версии 10.2.1, которую любезно пихает нам автор либы вот здесь, не давая при этом никаких пояснений, что может требоваться и другая версия:
https://github.com/JakeWharton/butterknife#download
И - посыыыыпалось!
Error:(246, 5) error: resource android:attr/fontVariationSettings not found.
Error:(246, 5) error: resource android:attr/ttcIndex not found.
Error:failed linking references.
И все такое.
Получается, версию баттеркнайфа надо подбирать под support library?
А как именно?
Предположил, что надо зайти на maven и посмотреть на какой support library завязан сам баттеркнайф данной версии, и от того плясать. Окей, открываю com.jakewharton:butterknife:8.8.1:
https://mvnrepository.com/artifact/com.jakewharton...
Однако в зависимостях стоит support library 25.3.0, а вовсе не 26.1.0!
Посмотрел еще несколько проектов на гитхабе и увидел, что это соответствие из maven нигде не соблюдается!
А что же тогда соблюдается? Как понять какая версия-то баттеркнайфа нужна?
Ненавижу все, почему бардак-то везде такой?