web-dev-qa-db-fra.com

Erreur de studio Android lors de l'ajout du support Java8

qu'est-ce qui ne va pas avec mon Android Studio ou ma config?

Error:(22, 0) Could not find method jackOptions() for arguments [build_1b0umrzpkhcolzr325bxbizec$_run_closure1$_closure5@41c39fc1] on project ':app' of type org.gradle.api.Project.

et c'est mon build.gradle

Android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "com.twtstudio.wepeiyanglite"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
}
jackOptions {
    enabled true
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}


// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:2.2.0-beta1'
        classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
        classpath 'com.github.dcendents:Android-maven-gradle-plugin:1.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()

    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Je suppose que la prise n'est pas activée dans mon environnement de développement, et comment trouver les erreurs et les corriger?

18
life2015

jackOptions devrait être dans defaultConfig {} comme ceci:

defaultConfig {
    ...

    jackOptions {
        enabled true
    }
}
32
Andrey

Selon documentation :

La chaîne d'outils Jack est obsolète, comme l'indique cette annonce . Si votre projet dépend de Jack, vous devez migrer vers le support Java 8 intégré à la chaîne d’outils par défaut d’Android Studio. L'utilisation de la chaîne d'outils par défaut inclut également la prise en charge de bibliothèques tierces utilisant les fonctionnalités du langage Java 8, Instant Run , et des outils qui dépendent de fichiers .class intermédiaires.

Pour désactiver Jack et passer à la chaîne d’outils par défaut, supprimez simplement le bloc jackOptions du fichier build.gradle de votre module:

Android {
    ...
    defaultConfig {
        ...
        // Remove this block.
        jackOptions {
            enabled true
            ...
        }
    }

    // Keep the following configuration in order to target Java 8.
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
5
MehrdadSComputer

Selon la dernière documentation

defaultConfig {
  ...
  jackOptions {
    enabled true
  }
}

est redondant, vous pouvez donc le supprimer complètement.

Veuillez consulter https://developer.Android.com/studio/write/Java8-support.html?utm_source=Android-studio

3
AjaiArul

N'ajoutez pas jackOptions si vous ne migrez pas de jackOptions.

Refere ce lien:

https://code.tutsplus.com/tutorials/Java-8-for-Android-cleaner-code-with-lambda-expressions--cms-29661

0
Jay

Vous pouvez utiliser le bloc compileOpitons après le buildTypes sans utiliser le bloc jackOptions comme ceci:

Android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.abdo.nadias"
        minSdkVersion 17
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility = '1.8'
        targetCompatibility = '1.8'
    }
}
0
abderazak la3ta3ta