web-dev-qa-db-fra.com

Retrolambda - Jack est requis pour prendre en charge Java 8 - correctif d'avertissement

Existe-t-il un moyen de désactiver l'avertissement sur

Jack est requis pour prendre en charge Java 8 fonctionnalités du langage.

tout en utilisant Retrolambda?

Je ne veux pas de prise en charge jack pour l'instant car il ne compile pas encore notre projet.

21
miszmaniac

studio Android

Ajoutez les codes ci-dessous dans votre gradle d'application après avoir synchronisé

// ----- add
buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'me.tatarka:gradle-retrolambda:3.2.4'
    }
}

repositories {
    mavenCentral()
}
// ----- end

apply plugin: 'com.Android.application'
apply plugin: 'me.tatarka.retrolambda' // ----- add 

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

//----add
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
16
loadjang

Vous pouvez simplement supprimer la configuration suivante de votre build.gradle fichier:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

Le plugin retrolambda s'en chargera de toute façon et configurera la tâche du compilateur Java avec les paramètres de compatibilité source et cible corrects).

6
T. Neidhart

Je confirme qu'il est sûr de supprimer la référence VERSION_1_8 dans build.gradle. De plus, si vous définissez la prise en charge de la prise sur true en même temps en définissant Java Version sur 1.8 et en utilisant Retrolambda , l'erreur suivante entre en jeu:

Java.lang.NullPointerException (pas de message d'erreur)

1
ebarault