【发布时间】: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