web-dev-qa-db-fra.com

Android Studio 2.1 Erreur lors de la conversion du bytecode en dex

J'obtiens l'erreur suivante depuis la mise à jour du studio Android de 2.0 à 2.1.

Erreur: erreur lors de la conversion du bytecode en dex:

Cause: Dex ne peut pas analyser le code de la version 52 octets. Cela est dû aux dépendances de bibliothèque qui ont été compilées à l'aide de Java 8 ou supérieur. Si vous utilisez le plugin gradle 'Java' dans un sous-module de bibliothèque, ajoutez targetCompatibility = '1.7' sourceCompatibility = '1.7' dans le fichier build.gradle de ce sous-module.

J'ai essayé d'ajouter l'extrait de code suivant dans build.gradle, mais le problème persiste

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }

J'ai vu certaines des questions similaires à cela, mais aucune des questions n'a répondu. Quelqu'un peut-il m'aider à résoudre ce problème? Merci d'avance.

10
Suresh Kumar

Essayer

allprojects {
    tasks.withType(JavaCompile) {
        sourceCompatibility = "1.7"
        targetCompatibility = "1.7"
    }
}

en général build.gradle fichier

33
sbeliakov

Supprimez les dépendances de build.gradle, commentez le code pertinent, puis compilez et nettoyez votre projet.

Après un nettoyage réussi, ajoutez à nouveau les dépendances et décommentez ce que vous avez commenté après avoir supprimé les dépendances plus tôt.

Copie possible de Android: Dex ne peut pas analyser le code de la version 52 octets . La réponse la plus citée a résolu le problème pour moi.
J'ai ajouté compileOptions et jackOptions comme indiqué ci-dessous à mon build.gradle pour utiliser JDK 1.8.

Android {
    ...
    defaultConfig {
        ...        
        jackOptions {
            enabled true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
1
Matteo Milesi