ButterKnife не работает с Джеком?

Я только начал очень простой проект и попытался использовать компилятор ButterKnife и Jack, но, похоже, они плохо справляются друг с другом.

Версия плагина Gradle: 2.2.0-alpha5

В моем модуле build.gradle я добавил:

compile 'com.jakewharton:butterknife:8.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.2.1'

И сообщение об ошибке:

Error:Execution failed for task ':app:transformJackWithJackForDebug'.
java.lang.AssertionError: java.lang.IllegalArgumentException

Я что то пропустил или просто они не совместимы?

4 ответа

Версия 8.3.0 была недавно выпущена с поддержкой Джека.

compile 'com.jakewharton:butterknife:8.3.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.3.0'

Вот ответ Джейка Уортона от похожих Stackru сообщение:

Если вы используете Джек:

  • Опустите плагин 'android-apt' полностью.
  • использование annotationProcessor для зависимости (вместо apt).

Я считаю, что вы должны использовать версию 2.2.0 плагина Android Gradle вместо 2.1.x (в настоящее время последняя версия 2.2.0-alpha5).

Документация Butter Knife будет обновлена ​​до следующего выпуска (8.2.0), чтобы включить эту информацию.

От: Butterknife 8.1.0 не работает с JDK 1.8 в Android Studio 2.1.2

Проверьте также: http://github.com/JakeWharton/butterknife/issues/616

Надеюсь, это поможет

Благодаря подсказке @isnotmenow я попытался изменить версию ButterKnife на 8.1.0, и она работает хорошо. Но и 8.2.0, и 8.2.1 жалуются на исключения, у меня есть проблема на странице проекта.

Попробуй удалить apply plugin: 'android-apt' в вашем приложении Gradle.

Как в readme, он говорит:

Примечание: если вы используете новый компилятор Jack с версией 2.2.0 или новее, вам не нужен плагин 'android-apt', и вы можете вместо этого заменить apt на annotationProcessor при объявлении зависимости компилятора.

Другие вопросы по тегам