【问题标题】:android-apt & jack and jillandroid-apt & 杰克和吉尔
【发布时间】:2017-01-30 17:37:03
【问题描述】:

Android Studio 2.2

Gradle Android 工具 2.2.0

Gradle Wrapper 2.14.1-all

我正在使用 apt 插件编译 ButterKnife(8.2.1 版)库,我想使用带有 jack 和 jill 支持的 lambda。

android apt 插件

apply plugin: 'android-apt'

android apt 类路径

classpath "com.neenbedankt.gradle.plugins:android-apt:1.8"

如果我尝试启用千斤顶工具链

defaultConfig {
    ...

    // java 8 language support
    jackOptions {
        enabled true
    }
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

jack 和 apt 一起出现以下错误:

Error:Could not get unknown property 'classpath' for task ':app:transformJackWithJackForDebug' of type com.android.build.gradle.internal.pipeline.TransformTask.

如果我要删除 android-apt 插件,jack 工具链会很好用。那么,我们应该怎么做才能一起使用它们呢?

【问题讨论】:

  • 你为什么使用 Jack 而不是 Retrolambda?只是好奇
  • Retrolambda 与 Proguard 存在问题。 Retrolambda wiki 说“将 -dontwarn java.lang.invoke.* 与 proguard 一起使用”。但是如果你将它与 proguard 一起使用并反编译结果 apk,你会发现代码中没有混淆。所以,这就是我不使用 retrolambda 的原因。

标签: android java-8 android-jack-and-jill android-apt


【解决方案1】:

android-apt 不支持杰克。从 Android Gradle 插件版本 2.2 开始,我建议切换到也支持 Jack 的内置注释支持。 See this short guide on how to migrate from android-apt.

【讨论】:

  • 我试了再写结果。感谢官方链接。
  • 我尝试并解决了这个问题。感谢您提供迁移链接!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多