[Tips and Tricks] Error «class file has wrong version 52.0, should be 50.0» en Visual Studio Team Services

androidEl problema

Lleno de ilusión, descargas e instalas Xamarin y te dispones a crear tu primera aplicación móvil multiplataforma nativa con C#. Seleccionas el proyecto Android como proyecto de arranque, un simulador y compilas.

Unsupported major.minor version 52.0
Unsupported major.minor version 52.0

¿Qué ocurre?

Probablemente has instalado múltiples SDKs de Android utilizando Android SDK Manager. Xamarin Android intenta utilizar las últimas “Android Build-Tools” aún no compatibles.

Para solucionar el problema tenemos dos caminos posibles.

El primero de ellos se basa en actualizar Java JDK y asegurar su uso. La versión 52.0 referenciada en el error se refiere al JDK, en concreto a la versión 8. Xamarin Android 7.0 requiere el JDK 1.8 para usar las APIs de Android Nougat (API Level 24). Es necesaria además una versión de 64 bits para poder usar controles personales en el editor Android entre otras acciones.

El segundo camino se basa en utilizar Android 6.0 o lo que es lo mismo el API Level 23.

Puedes encontrar más información en este artículo anterior.

El mismo problema en Visual Studio Team Services

Utilizando Visual Studio Team Services para realizar la compilación de un proyecto Xamarin.Android utilizando un servidor Hosted y en el log del proceso de compilación:

C:\Program Files (x86)\Java\jdk1.6.0_45\\bin\javac.exe -J-Dfile.encoding=UTF8 -d obj\Release\android\bin\classes -classpath .... obj\Release\android\src\android\support\design\R.java:10: cannot access java.lang.Object bad class file: java\lang\Object.class(java\lang:Object.class) class file has wrong version 52.0, should be 50.0 Please remove or make sure it appears in the correct subdirectory of the classpath.

Conociendo el problema tenemos dos opciones. Modificar el proyecto para utilizar Android 6.0 o actualizar Java JDK. Al ser un servidor de tipo Hosted no podemos acceder al servidor remotamente y actualizar.

¿Qué podemos hacer?

En las opciones relacionados con el JDK del proceso de Build en VSTS podemos elegir la versión JDK a utilizar.

JDK 8
JDK 8

Tras lanzar de nuevo una build, el problema queda resuelto!

Más información

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *