web-dev-qa-db-fra.com

java Lang UnsupportedClassVersionError dans Xamarin Studio

Je reçois l'erreur suivante lorsque je construis mon projet. Comment puis-je corriger cela?

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets (3,3): Erreur: Java.lang.UnsupportedClassVersionError: com/Android/dx/command/Main: non pris en charge major.minor version 52.0 (FGH)


Mes informations de version de Aide> À propos de> Afficher les détails :

Xamarin.Android Version: 6.0.2.1 (Édition Initiale)
SDK Android: C:\Utilisateurs\Admin\AppData\Local\Android\android-sdk

Versions Android 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
SDK Build Tools Version: 24 rc2

SDK Java: C:\Fichiers de programme (x86)\Java\jdk1.7.0_71
Version Java "1.7.0_71"
Environnement d'exécution Java SE (version 1.7.0_71), client Java HotSpot (TM) VM (version 24.71-b01, mode mixte, partage)

39
Dikshit Kalra

La version 52.0 ici fait référence à la version spécifique de JDK, qui dans ce cas concerne JDK 8.

Xamarin.Android 7.0 requiert JDK 1.8 Pour utiliser les API Android Nougat (API 24). Vous pouvez continuer à utiliser les versions antérieures Du JDK si vous ciblez des niveaux d'API Android antérieurs:

De plus, une version 64 bits du JDK est nécessaire pour utiliser les contrôles personnalisés dans Android Designer .

L'option la plus simple consiste à installer la version 64 bits de JDK 1.8 car elle est compatible avec tous les niveaux précédents de l'API et supporte les nouvelles fonctionnalités du concepteur Android.

(Une complication malheureuse avec JDK 1.8 est que not n'est pas compatible avec La version obsolète de Proguard qui est incluse dans le SDK Android. Actuellement, cela provoquera une erreur. "Version de classe non prise en charge." number [52.0] "lorsque tente d'utiliser les fonctions Proguard ou Multidex dans Xamarin.Android. Voir 44187 . Je vous recommanderais de l'installer du côté de la version par défaut fournie par Android. Android-sdk\tools\proguard. Renommez simplement le dossier existant en quelque chose d'autre et ajoutez la nouvelle version de proguard.)

50
Alan Clark

Major.minor version 52.0 non prise en charge

Ce message d'erreur est dû à une incompatibilité avec le JDK Java: les versions 24 et supérieures des outils de génération de SDK Android requièrent le JDK Java 8 (1.8), alors que les versions antérieures étaient toujours compatibles avec le JDK Java 7 (1.7). (Cela ressemble à réponses plus anciennes à propos de la même erreur.)

Étapes pour mettre à jour:

  1. Mise à jour vers Java JDK 8 . Il est recommandé d'utiliser la version 64 bits pour assurer la compatibilité avec les nouvelles fonctionnalités de Xamarin Android Designer dans Xamarin Studio 6.1 et Xamarin pour Visual Studio 4.2.

  2. Vérifiez que Java JDK 8 est sélectionné dans les préférences de Xamarin:

    • Visual Studio: Outils> Options> Xamarin> Paramètres Android> Emplacement du kit de développement Java.

       "Tools > Options > Xamarin > Android Settings > Java Development Kit Location" in Visual Studio

    • Xamarin Studio (sur Mac): Xamarin Studio> Préférences> Projets> Emplacements du SDK> Android> Java SDK (JDK).

       "Xamarin Studio > Preferences > Projects > SDK Locations > Android > Java SDK (JDK)"

  3. Installez Android SDK Build-tools 24.0.1 ou une version ultérieure.

  4. (Facultatif) Désinstallez les anciens outils de génération de SDK Android 24 qui ont un bogue dans aapt :

     

Alternatives:

Si vous préférez ne pas mettre à jour Java JDK 8 pour le moment, vous pouvez effectuer l'une des opérations suivantes.

  • Désinstallez toutes les versions 24 et supérieures du kit de développement Android SDK via le gestionnaire de SDK Android.

  • Ou définissez la propriété AndroidSdkBuildToolsVersion MSBuild sur une version antérieure. Par exemple, si vous avez également installé la version 23.0.3, vous pouvez ajouter la ligne suivante dans l'élément <PropertyGroup> en haut du fichier de projet .csproj du projet Android:

    <AndroidSdkBuildToolsVersion>23.0.3</AndroidSdkBuildToolsVersion>
    

(Voir aussi https://releases.xamarin.com/technical-bulletin-Android-sdk-build-tools-24/ .)


Informations de fond supplémentaires

Mise à jour du 25 juillet 2016:

Google a maintenant publié Android SDK Build-tools 24.0.1. Cette version corrige un bogue dans aapt présent dans la version 24.


Mise à jour du 14 juillet 2016:

Major.minor version 52.0 non prise en charge

Il s'avère que ce message d'erreur est dû à une incompatibilité avec le JDK Java plutôt qu'avec Xamarin.Android: Android SDK Build-tools version 24 requiert Java JDK 1.8, alors que les versions précédentes étaient toujours compatibles avec Java JDK 1.7. (Cela ressemble à réponses plus anciennes à propos de la même erreur.)


Mise à jour du 16 juin 2016:

La version non prévisualisée d'Android SDK Build-tools version 24 est maintenant disponible dans Android SDK Manager. Xamarin.Android n'est pas encore compatible avec cette version non plus.


Info du 12 avril 2016:

Outils de compilation SDK Version: 24 rc2

La "Version des outils de génération" semble être le problème. Xamarin.Android n'est pas encore compatible avec la version "24 rc2" Build-tools de la "Chaîne de prévisualisation" du gestionnaire de SDK Android. Vous pouvez désinstaller cette version d'aperçu et installer l'une des versions autres que l'aperçu des outils de compilation (tels que 23.0.3) à l'aide du gestionnaire de SDK Android.

64
Brendan Zagaeski

SOLUTION!

Modifiez le SDK Java en 1.8.x . Après le redémarrage de Visual Studio, exécutez "Clean Solution", "Build" et soyez heureux!

 enter image description here

8
Edvaldo Silva

Téléchargez le dernier JDK et installez-le,

Ensuite aller à:

  • Outils VS2015> Options> Xamarin et remplacez Java par le dernier emplacement JDK. 
  • Xamarin Studio: Outils -> Options -> Emplacements du SDK

J'espère que cela t'aides.

5
Michele Caggiano

Comme Brendan Zagaeski a déclaré, c'est un problème généré en raison de l'utilisation de la version de prévisualisation des outils de construction 

S'il vous plaît suivez ces étapes

  • Open SDK Manager
  • Sélectionnez les outils de construction avec la version 24rc2 (assurez-vous que seul cet élément est sélectionné)
  • Cliquez sur désinstaller

UPDATE: une réponse détaillée peut être trouvée ici https://stackoverflow.com/a/37827161/5073734

** MISE À JOUR 2016 NOV ** Certains de mes amis m'ont dit que cela peut aussi arriver avec les paquets de nuget. Si ce qui précède ne résout pas vos problèmes, essayez de réinstaller les paquets Nuget.

2
Habel Philip

Assurez-vous que si dans VS vous allez à 
Projet> Nom du projet Propriétés> Application 
vous avez téléchargé toutes les versions sélectionnées dans le SDK Android 

Supposons que vous n'ayez installé que les API pour Android 6.0 (niveau 23) et 5.1.1 (niveau 22), mais que vous définissiez votre Minimum Android pour cibler sur un niveau inférieur à ce niveau 16, par exemple. Cela donnera l'erreur Java.lang.UnsupportedClassVersionError:.

Assurez-vous simplement que vous utilisez le bon niveau d'API

1
mrOak

Je réalise que c'est un peu plus vieux maintenant, mais j'ai aussi rencontré ce problème et rien de ce que j'ai trouvé en ligne ne résoudrait ce problème. Enfin, j'ai essayé de désinstaller et de réinstaller certains paquets de nugets que j'avais installés (SQLite.Net). Après cela, il a compilé. J'espère que cela servira à quelqu'un qui a épuisé ces solutions plus courantes.

1
Unlearnd

J'ai rencontré le même problème, la version 1.7 de Java de mon système était installée. J'ai installé la version 1.8 dans le système. 

Chemin d'accès mis à jour de jdk Outils-> Options-> Xamarin-> Paramètres Android -> (emplacement du kit de développement Java) définissez le chemin jdk sur la nouvelle version de jdk.

projet rebuid à nouveau, problème résolu.

0
Shweta

La suppression de la version 24, le téléchargement et l’installation de JDK 1.8_112, le remplacement du kit de développement Java par JKD 1.8_112 (présent dans les fichiers de programme et non les fichiers de programme x86) et la reconstruction du projet me convenaient parfaitement.

0
Dwizzle

Il y a quelques minutes, je faisais face au même problème . Une solution sûre: A) Allez dans Outils> Options> Xamarin> Paramètres Android> Emplacement du kit de développement Java> changez-le en JDK 1.8 pointez sur la version Java actuelle 

100% de travail 

0
androminor