web-dev-qa-db-fra.com

Major.minor version 52.0 non prise en charge dans mon application

J'essaie de compiler mon projet Android et j'obtiens cette erreur

[INFO] Exception in thread "main" Java.lang.UnsupportedClassVersionError: com/Android/dx/command/Main : Unsupported major.minor version 52.0
[INFO]  at Java.lang.ClassLoader.defineClass1(Native Method)
[INFO]  at Java.lang.ClassLoader.defineClass(ClassLoader.Java:800)
[INFO]  at Java.security.SecureClassLoader.defineClass(SecureClassLoader.Java:142)
[INFO]  at Java.net.URLClassLoader.defineClass(URLClassLoader.Java:449)
[INFO]  at Java.net.URLClassLoader.access$100(URLClassLoader.Java:71)
[INFO]  at Java.net.URLClassLoader$1.run(URLClassLoader.Java:361)
[INFO]  at Java.net.URLClassLoader$1.run(URLClassLoader.Java:355)
[INFO]  at Java.security.AccessController.doPrivileged(Native Method)
[INFO]  at Java.net.URLClassLoader.findClass(URLClassLoader.Java:354)
[INFO]  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:425)
[INFO]  at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:308)
[INFO]  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:358)
[INFO]  at Sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.Java:482)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

J'ai lu dans un autre article qui tente de compiler avec Java 8 pourrait causer cette erreur mais pas mon cas, j'ai la version Java suivante:

Java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.5) (7u79-2.5.5-0ubuntu0.14.04.2)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

Système d'exploitation: Linux Mint (je n'ai pas installé Java 8.) Build: MAVEN

Est-ce que quelqu'un peut m'aider avec ça?

127
Rafael Reyes

Je fais également face à ce problème lorsque je crée un nouveau projet à partir du studio Android.

J'ai pu résoudre ce problème en rétrogradant buildToolsVersion dans le paramètre de gradation d'application: changez {module-name} /build.gradle line

buildToolsVersion "24.0.0 rc1"

à

buildToolsVersion "23.0.3"


@Modifier:
Dans Android Studio 2.1 Cliquez sur Fichier-> Structure du projet-> Application -> Version de l'outil de génération. Changez-le en 23.0.3

Suivez la méthode ci-dessus, uniquement lorsque vous utilisez Java version 7 et que, pour une raison quelconque, vous ne souhaitez pas encore effectuer la mise à niveau vers Java 8.

J'espère que cela t'aides

237
Rudy Kurniawan

Gradle Scripts >> build.gradle (application du module)

Remplacez buildToolsVersion "24.0.0" par buildToolsVersion "23.0.3"

source: expérience

43
Febrianto Nugroho

Initialement, j'avais rétrogradé buildToolsVersion de 24.0.0 rc3 à 23.0.3, comme indiqué dans la réponse de Rudy Kurniawan. Ensuite, j'ai remarqué que jdk 7 est spécifié dans les paramètres de mon projet. Je l'ai changé en jdk 8 et je construis maintenant des outils 24.0.0 rc3 travail.

enter image description here

Il est également important de définir les options de compilation sur Java7:

Android {
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}
31
Denis Kniazhev

J'ai installé Android Studio aux côtés de Xamarin Visual Studio (était déjà installé). Après l'installation (SDK exclu, car ils étaient déjà installés), j'ai lancé Android Studio et il a téléchargé, installé et ajouté des SDK manquants (après avoir indiqué le chemin d'accès à l'emplacement du SDK). En conséquence, j'ai reçu le message d'erreur sur la construction

Java.lang.UnsupportedClassVersionError: com/Android/dx/commande/Main: version majeure non prise en charge 52.0

En tant que solution, j'ai installé jdk-8u101-windows-i586.exe sans JRE (car il était déjà installé). Avant, j’avais essayé la version x64, mais elle a disparu ... Ensuite, vous devez changer le emplacement du Java Development Kit .

Change JDK location

Pour ce faire, dans Visual Studio, cliquez sur Outils> Options> Xamarin> Android Paramètres. Ici, vous pouvez naviguer au bon endroit. Dans mon cas c'était C:\Program Files (x86)\Java\jdk1.8.0_101.

Enfin, nettoyez votre projet et faites une nouvelle construction :-)

14
testing

Le problème spécifié:

Exception dans le fil "principal" Java.lang.UnsupportedClassVersionError: com/Android/dx/command/Main: version majeure.minor non prise en charge 52.

est causé quand est déclaré à l'intérieur du build.gradle, buildToolsVersion 24 et que nous n'avons pas Java 8 installé requis pour cette version . Pour résoudre ce problème, nous devons passer de buildToolsVersion de 24 à maximum 23:

enter image description here

Java 8 doit être requis à l'avenir pour Android Studio, nous devons donc commencer à utiliser Java 8.

8
Jorgesys

J'ai eu le même problème avec ma version IntelliJ Maven. Ma "solution" était d'aller dans les outils de construction et de supprimer le dossier 24.0.0 des outils de construction. Je l'ai trouvé dans le répertoire {Android-sdk-location}/build-tools/. Ce n'est pas une solution à long terme, mais cela devrait au moins permettre à votre projet de se reconstruire. La mise à niveau vers Java 8 comme beaucoup l'ont suggéré sera meilleure à long terme.

6
sotrh

Ce que personne ne dit ici, c'est qu'avec Build Tools 24.0.0, Java 8 est requis et que la plupart des utilisateurs disposent de la version 1.6 ou 1.7.

Alors oui, définir l'outil de génération sur 23.x.x "résoudrait" le problème, mais la cause fondamentale en serait la version Java de votre système.

Sur le long terme, vous voudrez peut-être mettre à niveau votre environnement de développement pour qu'il utilise JDK8 afin de tirer parti des améliorations apportées au langage et du compilateur jack.

5
Jay Sidri

52 est le code de JDK 8. Vous pouvez le voir ici: http://javarevisited.blogspot.com/2015/05/ fixant-unsupported-majorminor-version.html . Gradle s'attend donc à ce que vous ayez JDK 8 comme version Java par défaut sur votre ordinateur. Les dernières versions de Gradle pour Android ne fonctionneront pas avec Java 7.

La solution est simple: indiquez Java 8 la version par défaut de jdk sur votre ordinateur.

5
IgorGanapolsky

Je suis sur Android Studio 2.0 et je suis confronté au même problème. La solution fournie par Rudy Kurniawan a réglé ce problème. Le fichier affecté peut être localisé par:

"Projet" -> "Android" -> "Gradle Scripts" -> "build.gradle (Module: app)"

Le volet "Projet" est celui par défaut à gauche. Pour le trouver, examinez le nom des onglets latéraux, cliquez dessus, puis utilisez la liste déroulante du haut pour accéder à "Android". Développez l'arborescence dans le volet pour rechercher le fichier cible. Double-cliquez dessus pour le modifier.

4
coarist

Désolé pour la réponse tardive. J'espère que cela aidera quelqu'un d'autre

Ce problème est lié à votre SDK, pas à votre JDK. Vous pouvez vérifier vos informations de version à partir de

Aide> À propos de> Afficher les détails

Vous obtiendrez quelque chose comme

Xamarin.Android Version: 6.0.2.1 (Édition Starter) Android SDK: X:\Android\android-sdk

Android versions prises en charge:

4.0.3 (API niveau 15)

4.4 (niveau API 19)

6.0 (niveau API 23)

Outils du SDK Version: 24.4.1

SDK Platform Tools Version: 23.0.1

Outils de compilation SDK Version: 24 rc2

Kit de développement logiciel Java: X:\Program Files (x86)\Java\jdk1.7.0_71

Version Java "1.7.0_71"

Environnement d'exécution Java SE (version 1.7.0_71-b14)

Client Java HotSpot (TM) VM (version 24.71-b01, mode mixte, partage)

Si vous utilisez des outils de prévisualisation pour la construction, vous obtiendrez des erreurs similaires partout.

Que faire maintenant?

aller à

Outils -> Gestionnaire de SDK

  1. Sélectionnez tous les éléments dans les canaux d'aperçu, y compris Android SDK build tools avec rev 24rc2 ou 24rc4 (dernière).

  2. Cliquez sur Delete 'n' packages

Comment désactiver le canal de prévisualisation

  1. Dans le gestionnaire de SDK, sélectionnez

    Outils> options

  2. Décocher Enable preview tools

et quoi

Retour à votre code Nettoyer tout et reconstruire (Dans de rares cas, vous sélectionner les outils de construction à partir de la page des paramètres du projet)

4
Habel Philip

J'ai également rencontré ce problème lors de la création d'un nouveau projet dans Eclipse.

  1. Ouvrez votre répertoire d'installation Eclipse
  2. Ouvrez le fichier Eclipse.ini
  3. Modifier

    Dosgi.requiredJavaVersion=1.6 
    

    à

    Dosgi.requiredJavaVersion=1.7
    

J'espère que cela t'aides

4
user6661437

Obtenir ce message d'erreur sur le serveur de construction Travis?

J'ai corrigé mon travis build avec buildToolsVersion "24.0.2" en utilisant ceci

# travis build 
language: Android

jdk:
  - oraclejdk8

Android:
  components:
    - tools
    - build-tools-24.0.2
    - Android-23

    - add-on
    - extra

script:
  - jdk_switcher use oraclejdk8
  - ./gradlew assemble
2
k3b

Dans mon cas, le jdk par défaut était 1.7 puis je l’ai changé en 1.8 en allant dans le dossier exact où se trouve le jdk mis à jour.

2
Hedego

Merci à tous pour la solution.

Je pourrais résoudre le même problème en utilisant la solution ci-dessous.

Dans mon projet, j'ai ajouté des fichiers jar créés en Java8. Et mon projet faisait référence à JRE 7. Quand j'ai changé le projet JRE en 8. Mon problème a été résolu.

Étapes: Dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet dans l'explorateur de projets> chemin de construction> Bibliothèques> cliquez sur la version de jre> cliquez sur éditer> JRE installé> ajouter> standerd VM> sélectionnez le chemin de clic principal de JRE (chemin être localPath\Java\jdk1.8.0_25\jre)> indiquez nom> enregistrer> sélectionnez le même JRE pour le projet> terminer> ok Actualisez/générez le projet une fois> essayez d'exécuter votre fichier Java. ça devrait marcher.

2
haithem

Vos outils de construction Android ne sont pas correctement installés. Essayez d’installer une autre version des outils de compilation et indiquez cette version dans le fichier Gradle. ou vous pouvez aller dans ce répertoire

C:\Utilisateurs \\ AppData\Local\Android\sdk\build-tools

et voir quels outils de construction sont installés. Essayez de changer la version de l'outil de génération dans le fichier Gradle et compilez l'application pour voir si elle fonctionne.

j'avais les versions 22.0.1,23.0.02 et 24.0.0 des outils de compilation et seule l'ancienne version 22.0.1 fonctionnait.

source: j'ai essayé moi-même et cela a fonctionné pour moi.

1
Swathin

Ce problème provient du fait que la version de votre outil de génération et le JDK ne fonctionneront pas ensemble. J'utilisais JDK version 7 avec l'outil de compilation 24.0.1. Bien entendu, le fait d'abaisser la version de l'outil de génération peut résoudre le problème, mais ce n'est pas une vraie solution, car la mise à niveau future de vos outils de génération le corrigera.

Vous devez vous assurer que la version de l'outil de génération et le JDK fonctionnent ensemble. J'ai mis à niveau mon outil de génération vers la dernière version (24.0.1) et installé jdk8. Assurez-vous de définir Java_HOME sur la plus récente, puis essayez la nouvelle génération.

1
GodOnScooter

J'ai eu le même problème et essayé de changer la version, parfois c'est pour la version de Android Studio dans Projet> Scripts Gradle> build.gradle (Module: app), vous pouvez changer la version. Par exemple:

Android {
    compileSdkVersion **23**
    buildToolsVersion **"23.0.3"**

    defaultConfig {
        applicationId "com.example.Android.myapplication"
        minSdkVersion **19**
        targetSdkVersion **23**
        versionCode **1**
        versionName **"1.0"**
    }
1
Gladys Sanchez

Vous rencontrez le même problème en dehors de Android Studio lorsque vous essayez de construire pour Cordova à l'aide du sdk à partir de la ligne de commande (Cordova build Android).

La solution fournie par Rudy fonctionne également dans ce cas. Vous ne devez tout simplement pas déclasser la version de Build Tools de Android Studio, mais vous le faites à l'aide de Android sdk manager ui.

1
Andrea Gherardi

De this question.

Vous pouvez essayer de ramener votre niveau de compilateur à 1.7 dans le IDE que vous utilisez.

  • Si vous utilisez Eclipse, accédez à Windows ---> Préférences, puis sélectionnez Java et développez-le, puis sélectionnez Compilateur et définissez le niveau de conformité sur 1.7.
  • Si vous êtes sur Android Studio, vous pouvez l'ajouter à votre build.gradle.

    Android {
        compileSdkVersion 19
        buildToolsVersion "19.0.0"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 19
        }
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    }
    

Si cela ne vous aide pas, essayez de vérifier la réponse de l'autre dans le lien mentionné ci-dessus et dites-nous ce qui vous a aidé.

1
cristianorbs

La solution la plus simple consiste à mettre à jour votre JDK avec la dernière version. Parce que Cordova ne prend en charge que le dernier JDK.

1 . Tout d'abord, vous devez mettre à jour votre SDK Android. Ensuite,

2. Si vous ne pouvez pas mettre à jour via votre terminal, allez à votre Centre de logiciels de Linux destro et recherchez la dernière (celle que vous voulez installer) et installez-la.

Puis à nouveau lancez Cordova build.

Cela résoudra le problème.

Dans mon cas cela a fonctionné.

0
PyDevSRS

unsupported-major-minor-version peut provenir d'une version de JDK non prise en charge. Mettez à jour le JDK, allez dans Paramètres du module et modifiez le chemin du JDK par le nouveau. Dans la plupart des cas, cela corrige l'erreur.

0
Rachit Murarka

Vous devez vous rendre dans votre répertoire d'installation du SDK et vous assurer que le sous-répertoire /build-tools correspond à la buildToolsVersion de votre application. Fichier build.gradle: enter image description here

0
IgorGanapolsky

Je viens de rencontrer ce problème.

La restauration de la version "Aperçu du canal" des outils du SDK et de la génération d’outils vers la dernière version stable a résolu le problème.

0
Mike Playle

Changer com.Android.tools.build:gradle:2.2.0-beta1 en com.Android.tools.build:gradle:2.1.2 le corrigea pour moi.

Ma version Android Studio est la version 2.1.2, c'est peut-être pour cette raison

0
ericn

J'avais eu ce problème depuis trop longtemps (SO, etc. n'avait pas aidé) et je l'ai juste résolu (en utilisant SDK 25).

-Le fichier local.properties proguard.dir var ne s'appliquait pas avec ant; J'avais spécifié 5.3.2, mais un appel en ligne de commande et une construction d'exportation signée (Eclipse) utilisait 4.7, à partir du répertoire sdk (seuls 5+ prennent en charge Java 8)

Ma solution consistait à remplacer les fichiers jar de proguard (répertoire Android-sdk/tools/proguard/libs) du sdk par une version actuelle (à partir de 5 ans) de proguard.

0
rndStr

Vérifiez que vous disposez de la dernière version du SDK installée dans C:\Program Files\Java ou C:\Program Files (x86)\Java.

Ensuite, allez à VS2015 et suivez les outils de chemin - options - Xamarin - Android paramètres et dans la section Emplacement du JDK, sélectionnez Changer et allez à la version x64 ou x32.

0
genomma

Je suis sur Cordova, voici ce que j'ai fait:

- renommez votre projet Android afin qu'il reste de la place pour le nouveau
- met à jour Java Kit de développement à la version 1.8 (la dernière en date a été écrite)
- lancez cordova platform add Android

Devrait fonctionner sans problèmes maintenant. Votre hachage d'application va changer, donc si vous l'utilisez p.e. pour vous connecter à facbeook, vous devrez le mettre à jour

0
mate.gwozdz