Работает ли butterknife 7.x с Kotlin M14?

Я пытаюсь использовать Butterknife с кодом Котлина, а также Java-кодом. Я знаю, что до M12 была плохая поддержка или отсутствие поддержки обработки аннотаций, требуемой ButterKnife. Поэтому я сохранил свою деятельность на Java. Он работал по крайней мере на Java с Butterknife 6.x и preM12 Kotlin. Я пытаюсь теперь butterknife 7.x с M13 и M14. Он должен иметь поддержку обработки аннотаций, но он не работает для меня. Функция bind() не связывает ничего в моем адаптере, написанном на Java, и в действии, написанном в Котлине.

Я использую это в build.gradle (пробовал последнюю версию на Github):

 apply plugin: 'com.neenbedankt.android-apt' dependencies { provided files('libs/butterknife-annotations.jar') kapt files('libs/butterknife-compiler-8.0.0-SNAPSHOT.jar') compile 'com.jakewharton:butterknife:8.0.0-SNAPSHOT@aar' } 

Это не компилируется. Я попробовал также «com.neenbedankt.android-apt», который компилируется, но привязка не работает.

Я знаю, что, вероятно, для этого нет поддержки в butterknife . Но есть ли какой-нибудь взлом, чтобы заставить его работать?

Solutions Collecting From Web of "Работает ли butterknife 7.x с Kotlin M14?"

Он работает с текущей версией Kotlin (1.0.0-beta-3595), я предлагаю вам взглянуть на проект android-butterknife, который можно найти в репозитории примеров kotlin-примеров JetBrains. Короче все, что вам нужно сделать, это:

  1. Добавьте в файл app/build.gradle :

     kapt { generateStubs = true } 
  2. Поместите следующую строку внутри блока dependencies из того же файла build.gradle (если вы уже добавили compile 'com.jakewharton:butterknife:7.0.1' в зависимости):

     kapt 'com.jakewharton:butterknife:7.0.1' 

И это должно быть так.

Butterknife поддерживается. Используйте kapt: [1] , [2] .

Обратите внимание, что Butterknife не поддерживает частные поля Java, поэтому вы можете использовать модификатор lateinit , чтобы сделать его общедоступным.

Кроме того, если вы используете kapt, apply plugin: 'com.neenbedankt.android-apt' больше не нужна.