13

我刚刚开始了一个非常简单的项目,并尝试同时使用 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

4 回答 4

6

8.3.0 版最近刚刚发布,支持 Jack。

compile 'com.jakewharton:butterknife:8.3.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.3.0'
于 2016-08-26T01:29:34.197 回答
3

尝试apply plugin: 'android-apt'在您的应用程序 gradle 中删除。

正如自述文件中所说:

注意:如果您使用的是 2.2.0 或更高版本的新 Jack 编译器,则不需要 'android-apt' 插件,并且可以在声明编译器依赖项时将 apt 替换为 annotationProcessor。

于 2016-07-13T05:07:57.057 回答
3

感谢@isnotmenow 的提示,我尝试将 ButterKnife 版本更改为 8.1.0 并且效果很好。但是 8.2.0 和 8.2.1 都抱怨异常,我在项目页面上发布了一个问题。

于 2016-07-13T05:52:16.957 回答
3

StackOverflow这是杰克沃顿在类似帖子中的回答:

如果您使用的是杰克:

  • 完全省略“android-apt”插件。
  • 用于annotationProcessor依赖项(而不是apt)。

我相信您必须使用 Android Gradle 插件的 2.2.0 版本而不是 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

希望它会有所帮助

于 2016-08-17T23:15:42.900 回答