【问题标题】:ButterKnife not working with Jack?ButterKnife 不和 Jack 合作?
【发布时间】:2016-11-15 11:43:04
【问题描述】:

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

我错过了什么还是只是它们不兼容?

【问题讨论】:

  • 投赞成票只是因为问题标题很棒!!!

标签: android android-layout android-studio butterknife jack-compiler


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    正如自述文件中所说:

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

    【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 对我来说,它也可以将 ButterKnife 的版本降级到 8.1.0
    【解决方案4】:

    这是来自类似StackOverflow 帖子的 Jake Wharton 的回答:

    如果您使用的是 Jack:

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

    我相信你必须使用 2.2.0 版的 Android Gradle 插件虽然不是 2.1.x(目前最新的是 2.2.0-alpha5)。

    黄油刀文档将在下一个版本中更新 (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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      相关资源
      最近更新 更多