Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启用Jack时,Android项目不会编译_Android_Android Gradle Plugin_Build.gradle - Fatal编程技术网

启用Jack时,Android项目不会编译

启用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

启用jack时,我遇到以下错误

错误:Jar转换:类文件来自不受支持的Java版本错误:任务执行失败 “:app:transformclasses with prejackpackagedlibrariesfordebug”。 com.android.build.api.transform.TransformException:com.android.builder.core.JackToolchain$ToolchainException:Jack 编译异常

我的身材渐变

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。