启用Jack时,Android项目不会编译
启用jack时,我遇到以下错误 错误:Jar转换:类文件来自不受支持的Java版本错误:任务执行失败 “:app:transformclasses with prejackpackagedlibrariesfordebug”。 com.android.build.api.transform.TransformException:com.android.builder.core.JackToolchain$ToolchainException:Jack 编译异常 我的身材渐变启用Jack时,Android项目不会编译,android,android-gradle-plugin,build.gradle,Android,Android Gradle Plugin,Build.gradle,启用jack时,我遇到以下错误 错误:Jar转换:类文件来自不受支持的Java版本错误:任务执行失败 “:app:transformclasses with prejackpackagedlibrariesfordebug”。 com.android.build.api.transform.TransformException:com.android.builder.core.JackToolchain$ToolchainException:Jack 编译异常 我的身材渐变 apply plug
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion "25.0.3"
defaultConfig {
applicationId "pl.develhopper.jaxygenaddclientlib"
minSdkVersion 26
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
useLibrary 'org.apache.http.legacy'
jackOptions { // DEPRECATED
enabled true
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/DEPENDENCIES'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.code.gson:gson:2.8.2'
compile 'javax.xml.bind:jaxb-api:2.3.0'
testCompile 'junit:junit:4.12'
}
有人犯过这样的错误吗?它是从哪里来的?杰克被弃用了。如果你想使用Java8,你应该将AndroidStudio更新到3.0,主要是因为你不需要Jack将Java8与AndroidStudio 3.0一起使用 Jack是有缺陷的,我使用它时甚至无法编译它。根据我的经验,整个事情都是有车的。Android Studio 3.0在没有Jack的情况下支持Java 8,这意味着您不需要处理它 如果您已经在使用AndroidStudio 3,一般来说,您可以删除jack代码。不需要它。如果您使用的是较低版本,请升级,然后删除插孔代码 如果你读到: Android Studio为使用某些Java 8语言功能和使用它们的第三方库提供内置支持。如图1所示,默认工具链通过对javac编译器的输出执行名为desugar的字节码转换来实现新的语言特性。Jack不再受支持,您应该首先禁用Jack以使用默认工具链中内置的Java8支持
您将看到,AS 3(站点开头引用的版本,为简洁起见未包含在本答案中)支持不带jack的Java 8。而且,由于jack已被弃用,而且(以我的经验)已被窃听,因此升级是获得Java 8的最佳选择jack编译已被弃用,是否还有其他选项可以使用Java 8运行android项目?因为如果我将target和sourceCompatibility设置为1.8,我会得到这个错误:Jack是支持Java8语言特性所必需的。启用Jack或删除sourceCompatibility JavaVersion.VERSION_1_8。