gpt4 book ai didi

java - Android gradle 编译使用 java 1.8、jack 和 lambda 失败

转载 作者:搜寻专家 更新时间:2023-11-01 09:38:37 26 4
gpt4 key购买 nike

我正在尝试在我的项目中使用 java 8,但是当我使用 lambda 表达式时出现未知问题。

异常:org.gradle.api.tasks.TaskExecutionException:任务 ':SLL:compileReleaseJavaWithJavac' 执行失败。

原因: org.gradle.api.internal.tasks.compile.CompilationFailedException:编译失败;

我的项目在没有lambda的情况下运行没有错:

下面这段代码完美运行

act.runOnUiThread(new Runnable() {
public void run() {
// Alert dialog here
}
});

但是使用 lambda 失败并抛出上面的异常

act.runOnUiThread(()->{
// Alert dialog here
});

build.gradle

apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.2"

defaultConfig {
applicationId "..."
minSdkVersion 16
targetSdkVersion 25
versionCode 1
versionName "1.0"

jackOptions {
enabled true
}

}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
targetCompatibility 1.8 // or JavaVersion.VERSION_1_8
sourceCompatibility 1.8
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.0.1'
}

我不知道发生了什么。

提前致谢!

最佳答案

我找到了一个临时解决方案,只有当我们在库中使用 lambda 时才会出现问题,因为它不支持 jack,仅在主应用程序中支持 jack,我们正在等待 android 允许 libs 启用 jack,但在此之前,我们可以将下面的代码添加到 build.gradle 库文件中。

gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xbootclasspath/a:" + System.properties.get("java.home") + "/lib/rt.jar"
}
}

该解决方案仅适用于我们自己的接口(interface),其他如 Runnable 会导致编译错误。

关于java - Android gradle 编译使用 java 1.8、jack 和 lambda 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41313050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com