Si nos dirigimos a la página para
descargar el SDK:
y hacemos click en "SYSTEM
REQUIREMENTS" podemos observar una nota que dice que algunas
versiones de Linux incluyen un compilador de Java GNU (como OpenDK) y
que el SDK no soporta dichos compiladores.
Por otro lado, al hacer click sobre el
link que dice “JDK 6” nos lleva a la pagina de Oracle para
bajar la JDK de Sun.
Esto sugiere, que más allá de cuales
sean las razones, oficialmente no es soportada ninguna otra JDK que
la de Oracle
Una de las razones de esto puede venir
del problema de la compilación de Android.
Cuando nosotros bajamos el código
fuente de Android para compilarlo, y leemos las especificaciones que
debe tener nuestro entorno para poder compilar el sistema operativo
Android, nos encontramos con esta página:
En donde nos aclara que para compilar
Android se necesita JDK 6 de Sun. Esto quiere decir que todas las
bibliotecas Java de la API de Android están compiladas con el
compilador Java de Sun.
Si observamos el diagrama del Sistema
operativo, podemos ver que todo lo que esta en azul, que son
programas y bibliotecas Java, estarán compiladas con JDK de Sun.
Cuando nosotros hacemos una aplicación,
y compilamos en nuestra PC nuestro código Java con OpenJDK,
estaremos haciendo un programa que esta compilado con un compilador
(OpenJDK) pero que ciertas partes del mismo (Cuando usamos Clases de
la API de Android) utiliza código compilado con JDK de Sun.
Conclusión
Debido a que los compiladores son
diferentes, optimizan diferente, etc, es altamente probable que una
aplicación que utilice bytecode generado por 2 compiladores
diferentes, tengan conflicto.