studio - JAVA_HOME no válido cuando se compila con cordova
sdk android mac (5)
Córdova necesita un JDK
no un JRE
, ya que está buscando javac
. Ver check_reqs.js línea 86
. De sus comentarios está diciendo que " Dentro de esta ruta, no hay una carpeta bin " en un JDK
¡debería tener un directorio bin
!
Intento emular una aplicación en mi dispositivo con cordova en OpenSuse Leap 42.1.
Pero cuando traté de emular la aplicación con la cordova run
el siguiente error:
cordova run
Running command: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run
ERROR: Error: Failed to run "java -version", make sure that you have a JDK installed.
You can get it from: http://www.oracle.com/technetwork/java/javase/downloads.
Your JAVA_HOME is invalid: /usr/lib64/jvm/java-1.8.0-openjdk-1.8.0
ERROR running one or more of the platforms: Error: /home/soufraz/Projects/apps/myproject/platforms/android/cordova/run: Command failed with exit code 2
You may not have the required environment or OS to run this project
Tengo el Java instalado y las rutas establecidas en ~/.profile
.
¿Cuál es el error de configuración en mi entorno?
Debajo de mi .profile
:
JAVA_HOME=/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0
export JAVA_HOME
ANDROID_HOME=/home/soufraz/Install/android-sdk-linux
export ANDROID_HOME
PATH=$PATH:$ANDROID_HOME:$JAVA_HOME
Información sobre la versión de Java:
java -version
openjdk version "1.8.0_60"
OpenJDK Runtime Environment (build 1.8.0_60-b27)
OpenJDK 64-Bit Server VM (build 25.60-b23, mixed mode)
Y aquí la lista de la carpeta jvm:
ls -l
total 28
lrwxrwxrwx 1 root root 24 Nov 12 11:28 java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0
drwxr-xr-x 1 root root 6 Nov 12 11:28 java-1.7.0-openjdk-1.7.0
drwxr-xr-x 1 root root 6 Nov 11 17:26 java-1.8.0-openjdk-1.8.0
lrwxrwxrwx 1 root root 21 Nov 11 17:26 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root 27 Nov 12 11:28 jre-1.7.0 -> /etc/alternatives/jre_1.7.0
lrwxrwxrwx 1 root root 28 Nov 12 11:28 jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre
lrwxrwxrwx 1 root root 27 Nov 11 17:26 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx 1 root root 28 Nov 11 17:26 jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre
lrwxrwxrwx 1 root root 29 Nov 11 17:26 jre-openjdk -> /etc/alternatives/jre_openjdk
[editar] Árbol de vista con tres niveles:
tree -L 3
.
├── java-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0
├── java-1.7.0-openjdk-1.7.0
│ └── jre
│ ├── bin
│ └── lib
├── java-1.8.0-openjdk-1.8.0
│ └── jre
│ ├── bin
│ └── lib
├── jre -> /etc/alternatives/jre
├── jre-1.7.0 -> /etc/alternatives/jre_1.7.0
├── jre-1.7.0-openjdk -> java-1.7.0-openjdk-1.7.0/jre
├── jre-1.8.0 -> /etc/alternatives/jre_1.8.0
├── jre-1.8.0-openjdk -> java-1.8.0-openjdk-1.8.0/jre
└── jre-openjdk -> /etc/alternatives/jre_openjdk
En mi caso específico, elimino y reinstalé todos los paquetes de Java y agregué uno (para ''instinto''):
Quite:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
Y agregado:
java-1_8_0-openjdk
java-1_8_0-openjdk-headless
java-1_8_0-openjdk-plugin
java-1_8_0-openjdk-devel
<< - por suerte lo golpeé
Aparece el contenedor dentro de la carpeta principal. Con javac y otras cosas.
¡Gracias chicos!
Es un poco malentendido con los paquetes java-X_X_X-openjdk. Especialmente cuando está acostumbrado a la notación por defecto de Oracle.
La parte JDK es confusa, porque OpenJDK es un proyecto de implementación de código abierto de la Plataforma Java y no un paquete JDK, lo que realmente le permite desarrollar en Java. (información más precisa aquí: http://openjdk.java.net/install/index.html )
TLDR:
java-X_X_X-openjdk es el equivalente de JRE de Oracle.
java-X_X_X-openjdk-devel es el equivalente JDK de Oracle.
La verificación de las instalaciones de Java y JDK resolvió mi problema. Instala Java y JDK y prueba ...
Para compilar y ejecutar aplicaciones, debe instalar SDK para cada plataforma a la que desee orientar sus anuncios. Alternativamente, si está utilizando el navegador para el desarrollo puede usar la plataforma del navegador que no requiere ningún SDK de plataforma.
Para verificar si cumple con los requisitos para construir la plataforma:
$ cordova requirements
Requirements check results for android:
Java JDK: installed .
Android SDK: installed
Android target: installed android-19,android-21,android-22,android-23,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:23
Gradle: installed
Requirements check results for ios:
Apple OS X: not installed
Cordova tooling for iOS requires Apple OS X
Error: Some of requirements check failed
Tu camino debería ser así
PATH=$PATH:$ANDROID_HOME/bin:$JAVA_HOME/bin
y que export PATH