使用 Lambda 表达式和 Butterknife
Use Lambda expressions and Butterknife
我尝试在我的代码中使用 Lambda 表达式,但出现此错误:此语言级别不支持 lambda 表达式
我只是在 SO 上搜索它并找到了将其添加到 gradle 文件的解决方案:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
...
jackOptions {
enabled true
}
}
然后我得到了一个新的错误:错误:无法为 com.android.build.gradle.internal.pipeline.TransformTask 类型的任务 ':app:transformJackWithJackForDebug' 获取未知 属性 'classpath'。
再次搜索 SO 发现这是因为我不能同时使用 jack 和 apt...所以我删除了 apt 并删除了这些行:
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
...
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
...
}
并且出现了一个新错误,因为 ButterKnife 需要 apt...
那么如何在同一个项目中使用 Lambda 和 Butterknife 呢?
您应该为 build.gradle
中的 Butter-knife 库使用 注释处理器
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
完整 Gradle 看起来像:
buildscript {
repositories {
....
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'me.tatarka:gradle-retrolambda:3.4.0'
.....
}}
apply plugin: 'me.tatarka.retrolambda'
......
android{
.....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
}
dependencies {
..........
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}
}
注意: 不要使用 jackOption = Enabled
我尝试在我的代码中使用 Lambda 表达式,但出现此错误:此语言级别不支持 lambda 表达式
我只是在 SO 上搜索它并找到了将其添加到 gradle 文件的解决方案:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
...
jackOptions {
enabled true
}
}
然后我得到了一个新的错误:错误:无法为 com.android.build.gradle.internal.pipeline.TransformTask 类型的任务 ':app:transformJackWithJackForDebug' 获取未知 属性 'classpath'。
再次搜索 SO 发现这是因为我不能同时使用 jack 和 apt...所以我删除了 apt 并删除了这些行:
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
...
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
...
}
并且出现了一个新错误,因为 ButterKnife 需要 apt...
那么如何在同一个项目中使用 Lambda 和 Butterknife 呢?
您应该为 build.gradle
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
完整 Gradle 看起来像:
buildscript {
repositories {
....
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'me.tatarka:gradle-retrolambda:3.4.0'
.....
}}
apply plugin: 'me.tatarka.retrolambda'
......
android{
.....
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
repositories {
}
dependencies {
..........
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
}
}
注意: 不要使用 jackOption = Enabled