Ответ 1
Версия 8.3.0 только что была выпущена с поддержкой Jack.
compile 'com.jakewharton:butterknife:8.3.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.3.0'
Я только что начал очень простой проект и попытался использовать как 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
Я что-то пропустил или просто не совместим?
Версия 8.3.0 только что была выпущена с поддержкой Jack.
compile 'com.jakewharton:butterknife:8.3.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.3.0'
Попробуйте удалить apply plugin: 'android-apt'
в приложении gradle.
Как и в readme, он говорит:
Примечание. Если вы используете новый компилятор Jack с версией 2.2.0 или новее, вам не нужен плагин "android-apt" и вместо него вместо apt можно использовать annotationProcessor при объявлении зависимостей компилятора.
Благодаря подсказке @isnotmenow, я попытался изменить версию ButterKnife на 8.1.0, и она работает хорошо. Но как 8.2.0, так и 8.2.1 жалуются на исключения, у меня есть сообщение проблема на странице проекта.
Здесь ответ Джейка Уортона из аналогичного сообщения 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
Надеюсь, что это поможет