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 при объявлении зависимости компилятора.