13

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

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 

ли я что-то пропустил или это просто они не совместимы?

+1

Голосование просто потому, что название вопроса велико! – JustSomeDude

ответ

3

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

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

Примечания: Если вы используете новый Джек компилятор с версией 2.2.0 или новее вам не нужен «андроид-APT» плагина, и вместо этого могут заменить apt с annotationProcessor при объявлении зависимости компилятора.

+0

Нет, я никогда не добавлял плагин android-apt. – Marvin

+2

это могло бы помочь вам https://github.com/JakeWharton/butterknife/issues/616 –

3

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

+0

для меня это тоже работает версия версии ButterKnife для '8.1.0' –

3

Вот ответить на Jake Wharton от подобного StackOverflow поста:

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

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

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

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

От: Butterknife 8.1.0 not working with JDK 1.8 in Android Studio 2.1.2

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

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

6

Version 8.3.0 только недавно был выпущено с поддержкой Джека.

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