Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

Здесь ответ Джейка Уортона из аналогичного сообщения StackOverflow:

Если вы используете Jack:

  • Полностью опустите плагин "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

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