Instalar Cordova en Ubuntu

Instalar Cordova en Ubuntu

La programación de apps nos hechiza. Creo que no conozco a ningún programador que no esté interesado en la programación de aplicaciones para los móviles, a todos nos tienta mucho este mundo.

En este artículo vamos a hablar de Cordova y explicar cómo ponerlo en funcionamiento:

  • Qué es Cordova
  • Cómo instalar Cordova en Ubuntu Linux.
  • Cómo crear un proyecto en Cordova.
  • Agregar plugins a nuestro proyecto.
  • Compilar nuestro proyecto.

Como siempre, antes de nada aquí está la versión en vídeo para esos momentos en los que leer no es la mejor opción 😉

Conociendo Cordova

Por qué necesitamos Cordova

El mundo del desarrollo móvil está en continuo cambio y evolución: Cada año tenemos una nueva versión de Android con sus correspondientes nuevas APIs… iOS también tiene un ritmo rápido de versiones… Microsoft parece haber encontrado al fin la senda a seguir con su Windows… y eso sin contar al resto de sistemas operativos como FirefoxOS o el esperado Ubuntu Phone (ya se puede comprar el primer terminar con Ubuntu Phone instalado, el BQ Aquaris E4.5!).

En definitiva, aunque el mundo de la programación móvil es apasionante, las  diferentes plataformas suponen una barrera de entrada a la hora de desarrollar nuestras aplicaciones. Android utiliza Java… iOS Objective C… Windows tira de .NET… FirefoxOS HTML5… Cada plataforma utiliza su propio lenguaje de programación, lenguajes muy diferentes los unos de los otros lo que conlleva desarrollar una aplicación por plataforma… terminando tranquilamente con tres o cuatro aplicaciones diferentes que mantener. Y aquí es donde entra en juego Cordova.

Todas las plataformas móviles tienen algo en común: El navegador web. Todos nuestros dispositivos móviles están conectados a Internet, por lo que todos tienen un navegador web, lo que significa que todos tienen un entorno en común que podemos utilizar para crear nuestra aplicaciones: HTML5.

En qué se basa y cómo funciona Cordova

Cordova es un proyecto de la Apache Software Foundation que nos permite desarrollar nuestras aplicaciones en HTML5 y empaquetarlas en aplicaciones “nativas” para cada plataforma. Esto es posible gracias a que en los diferentes SDK de cada plataforma, está implementada la posibilidad de abrir, dentro de una aplicación nativa, un WebView (una ventana de navegador) cargando una página HTML que está como parte del contenido de la aplicación. El resultado es muy parecido al de una aplicación 100% nativa.

Cuando usamos Cordova para crear nuestras aplicaciones, programaremos toda nuestra aplicación en HTML5 (JavaScript, CSS3, HTML). Gracias a todas las APIs Javascript que están presentes en HTML5 podemos gestionar archivos, almacenar información en local, geolocalización, acceso a cámara etc etc.

Aunque no podemos hacer todo sólo con HTML5. Si quisiéramos acceder a la libreta de direcciones de nuestro teléfono, u obtener información sobre el estado de la batería, acceder al GPS del terminal, etc. no tendríamos manera de hacerlo sólo con HTML5. Y ahí es dónde entra en juego nuestro amigo.

La grandeza de Cordova

Si Cordova se limitara a crear una aplicación en código nativo en cuyo interior se abriera un WebView no lo necesitaríamos puesto que no es algo complicado de hacerlo uno mismo.

Además de abrirnos el WebView, tiene una serie de plugins que permiten comunicar nuestra aplicación en HMTL5 con las diferentes partes del dispositivo. Por ejemplo, sería imposible poder acceder desde nuestra aplicación en HTML5 a los contactos del móvil. Gracias a Cordova, sólo debemos instalar el plugin que lo permite. Este plugin incorporará código tanto en la aplicación (en el código Java si fuese Android) como en el WebView.

En el caso de la aplicación, el plugin incorporaría código Java, Objective-C, etc que habilite la comunicación entre el WebView y la agenda de contactos.

Al mismo tiempo, el plugin proporciona una API de Javascript que podremos utilizar en nuestro lado de la aplicación (HTML5) para poder buscar, leer y crear contactos.

En conclusión, gracias a Cordova podemos realizar aplicaciones muy potentes utilizando HTML5, teniendo un mismo código para todas las plataformas, lo que significa sólo una aplicación que mantener. Cierto es que al principio muchos entendieron Cordova como una herramienta puente para desarrollar apps mientras el programador no se familiarizaba con el lenguaje nativo de cada plataforma, pero debido a las grandes ventajas que supone el uso de Cordova y a que HTML5 cada vez es más importante en el desarrollo de software, más de uno debería replantearse esta idea.

Cómo instalar Cordova en Ubuntu Linux.

Por si había alguna duda, nuestras apps utilizando Cordova, se desarrollan en nuestro ordenador, por lo que en nuestros equipos instalaremos Cordova, algo que será diferente en función del sistema operativo que tengamos en nuestro ordenador.

Vamos a explicar cómo hacerlo en Ubuntu, aunque es aplicable casi en su totalidad para cualquier distribución Linux. Como vamos a instalar Cordova en Ubuntu, nuestras apps sólo podrán desarrollarse para: FirefoxOS, Android, Ubuntu y Amazon-FireOS. Si quisiésemos desarrollar la app también para Windows, tendremos que hacerlo en Win y si también se necesita para iOS será preciso un Mac. No serán necesarios para desarrollar nuestro proyecto, pero sí para compilar: Sólo podemos compilar para iOS desde Mac y para Windows desde Win.

Pero bueno, vayamos al lío.

Instalando el SDK de Android

El SDK de Android lo necesitamos para poder compilar nuestra aplicación para la plataforma Android, de forma que tras compilar, Cordova nos retornará un fichero .apk, el instalador de nuestra aplicación para la plataforma Android.

Como el desarrollo para Android se realiza en JAVA, antes de nada necesitamos tener instaldo Java en nuestro equipo. En concreto, necesitamos el JDK puesto que necesitamos la versión para desarrolladores. Además, como Cordova tiene que compilar nuestra aplicación en un APK, necesitaremos el programa ant de Java, encargado de esa tarea, así pues, antes de nada instalamos nuestras dependencias:

$ sudo apt-get install openjdk-7-jdk ant

El SDK lo podemos descargar de la página de Android para desarrolladores, sólo se necesita el SDK, esto es importante. En la página dónde te descargas el SDK, lo que llama la atención es el Android Studio, el nuevo IDE creado desde Google para desarrollar aplicaciones en Android, orientadas a código nativo (a JAVA). En nuestro caso lo que buscamos es desarrollar en HTML5 nuestra app para que pueda ser multiplataforma. En estos momentos, la URL para descargar el último SDK para Linux es http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz y se puede encontrar el enlace en la página linkada en “Android para desarrolladores” por la zona del final, dentro de “SDK Tools Only”. La descarga son unos 134MB así que tardará un ratico 😉

Una vez nos descargamos el fichero debemos descomprimirlo dónde más nos apetezca. Por defecto, la carpeta se llamará android-sdk-linux.

Dendo del SDK, en el directorio tools,  existe un ejecutable “android”. Este ejecutable (lo que serían los .exe de windows) no vamos a tocarlo, pero necesitamos hacer un pequeño cambio relacionado con él. Cuando vayamos a indicar a Cordova que nuestra app debe funcionar en Android, necesitará acceder al SDK que hemos descargado. Para acceder al SDK de Android, debe ser posible acceder escribiendo en la consola “android”. Si ahora mismo escribimos en la consola android tendríamos algo como:

$ android
android: no se encontró la orden

Esto ocurre porque en Linux existe una variable de configuración dónde se indican los directorios dónde se van a buscar las órdenes indicadas por consola. Normalmente, cuando instalamos un programa, se incluye el ejecutable (o un simbólico al mismo) en directorios como /usr/bin, /usr/local/bin, /usr/sbin o /usr/local/sbin en función de si el ejecutable es para todos los usuarios, sólo para root, etc. En el caso del SDK de Android, lo único que hicimos fue descomprimir, por lo que en los directorios de ejecutables no se ha incorporado nada a esos directorios.

Para solucionar este problema, podríamos crear un enlace simbólico o, lo que vamos a hacer, incorporar la ruta que necesitamos a las “rutas de ejecutables”. La variable global dónde se incluyen estas rutas es PATH, por lo que por consola ejecutamos:

$ export PATH=${PATH}:/home/rolando/android-sdk-linux/tools/

Por supuesto, en vez de /home/rolando hay que poner la ruta correspondiente de cada equipo. Pulsamos enter y listo. Si ahora lanzamos android:

$ android

Se nos abrirá el interfaz gráfico del SDK. En este interfaz podremos actualizar el SDK, instalar las diferentes versiones de las APIs, crear nuestros emuladores, etc. Todo lo que se puede hacer con esta interfaz gráfica no lo veremos ahora, lo dejaremos para futuros artículos de Android y Cordova.

Por último, antes de cerrar nuestro interfaz, vamos a instalar el api 19 de Android y el Android Build Tools puesto que son los requerimientos mínimos de Cordova para poder agregar android como plataforma y poder generar su APK:

Android SDK Build Tools

Android API 19

Bueno, ya tenemos nuestro SDK instalado, vamos ya con Cordova!!

Instalando NPM: el gestor de paquetes de Node-JS

Cordova se instala desde los repositorios de NPM. NPM es un gestor de paquetes para Javascript utilizado por Node-JS y Cordova se instala como un módulo desde NPM.

Así pues, desde nuestra consola y como root instalamos desde apt-get el NodeJS y el NPM:

$ sudo apt-get update
$ sudo apt-get install nodejs npm

Una vez instalado, podemos comprobar que tenemos NPM instalado, ejecutando:

$ npm -v
1.4.23

En el ejemplo, vemos que tenemos la versión 1.4.23 del NPM instalado.

Puede que en este punto, en vez de obtener la versión del NPM, se retorne un mensaje de error. Esto es debido a que en ubuntu el ejecutable de nodejs se almacena en el fichero /usr/bin/nodejs cuando npm espera que sea /usr/bin/node, por lo que tenemos que hacer un enlace simbólico para solucionarlo:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node

Ya podrá lanzar sin problema el npm -v

Instalando Cordova

Ya con el npm disponible, instalamos Cordova ejecutando por consola:

$ sudo npm install -g cordova

Y listo, nada más. Ya tenemos nuestro cordova instalado, para comprobarlo escribimos:

$ cordova -v
4.2.0

En el ejemplo, tenemos la versión 4.2.0 de Cordova instalado.

Instalando Phonegap

Si en vez de instalar Cordova quisiésemos instalar Phonegap, también lo haríamos desde npm con:

$ sudo npm install -g phonegap

Y para comprobar que todo OK:

$ phonegap -v
3.4.0-0.19.8

Recordemos que todo lo que vemos para Cordova sirve igual para Phonegap, cambiando solo el comando (de cordova a phonegap), aunque a nosotros nos interesa más cordova 😉

Creando nuestro primero proyecto en Cordova

Crear un proyecto en Cordova es extremadamente sencillo. Para tener todo un poco organizado, lo primero que hacemos es ir a nuestra HOME, por lo que en nuestra consola escribimos:

$ cd $HOME

Ya en nuestra carpeta personal, crearemos un directorio cordova-projects para almacenar en él nuestras aplicaciones y, nada más crearlo, entramos en él:

$ mkdir cordova-projects && cd cordova-projects

Ya dentro, procedemos a crear nuestro proyecto con:

$ cordova create hello com.example.hello HelloWorld

Con este comando lo que hemos hecho es:

  • Con cordova create indicamos a cordova que queremos crear un proyecto.
  • Con hello le decimos que el proyecto se va a almacenar en un directorio llamado hello que cordova creará por nosotros en el lugar donde estamos ($HOME/cordova-projects)
  • Con com.example.hello indicamos el nombre único de la aplicación. Las aplicaciones móviles tienen un nombre único, que no puede compartirse con ninguna aplicación (de las cientos de miles que existen). Normalmente se sigue le estándar de com.[el nombre de la empresa o creador].[nombre de la aplicación]
  • Con HelloWorld indicamos el nombre de la aplicación, será el nombre público por el cual se conocerá nuestra app.

Cordova ejecutará la creación de proyecto con los parámetros indicados y, una vez terminado, ya tendremos en hello nuestra app, por lo que entramos en ella y listamos el contenido

$ cd hello && ls -lha

El contenido que tenemos en nuestro proyecto de Cordova, haciendo un ls al directorio es, entre otras cosas:

  • platforms: Directorio dónde se almacenará la información de las plataformas (Android, iOS, etc) que estarán soportadas por nuestra aplicación.
  • plugins: Directorio dónde se almacenarán los plugins de Cordova que necesitará nuestra app para poder acceder, desde nuestro código Javascript, a otras aplicaciones o al hardware de los dispositivos (GPS, Contactos, Conectividad, Cámara, …)
  • www: Este es el directorio web, en su interior tendremos el código de nuestra aplicación, incluyendo el index.html que será la puerta de acceso a nuestra app. El directorio www se comporta igual que el directorio www de un espacio web, a todos los efectos.
  • config.xml: El fichero de configuración de nuestro proyecto Cordova.

Si tuviésemos Phonegap en vez de Cordova instalado, con cambiar cordova por phonegap, todo lo demás se mantiene.

Agregando la plataforma Android a nuestra aplicación HTML5 con Cordova o Phonegap

Ya tenemos nuestro proyecto Cordova creado. El siguiente paso es agregar el soporte a las plataformas que necesitemos.

Si estuviésemos en un Mac y quisiéramos agregar todas las plataformas disponibles sería:

$ cordova platform add ios
$ cordova platform add amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
$ cordova platform add ubuntu

Comentamos lo del mac, porque para dar soporte a la plataforma ios es necesario hacerlo desde un mac. En el caso de hacerlo desde windows:

$ cordova platform add wp8
$ cordova platform add windows
$ cordova platform add amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
$ cordova platform add ubuntu

En el caso de UNIX:

$ cordova platform add amazon-fireos
$ cordova platform add android
$ cordova platform add blackberry10
$ cordova platform add firefoxos
$ cordova platform add ubuntu

Pero bueno, para nuestro ejemplo sólo abarcaremos Android así que… nos cercioramos de estar en nuestro directorio de proyecto:

$ cd $HOME/cordova-projects/hello

y agregamos el soporte para android:

$ cordova platform add android

Si tenemos todo bien configurado, cordova agregará el soporte sin problemas.

Agregar plugins a nuestro proyecto Cordova / Phonegap

Los plugins es la base de Cordova. HTML5 está ideado para poder acceder al hardware de los dispositivos, de forma que tenemos librerías de Javascript para poder acceder a la Cámara, GPS, etc. Sin embargo, en HTML5 no todo está soportado y, aunque existan cosas que sí, no siempre están implementadas en los dispositivos dónde corren nuestras aplicaciones. Para solucionar este problema están los plugins de Cordova.

Los plugins de Cordova, por un lado incorporan código en la zona nativa de la aplicación, para conectar nuestro código HTML5 con los diferentes elementos de los dispositivos y, por otro lado, proporciona una librería de Javascript que podemos utilizar en nuestro código HTML5 para poder interactuar con los elementos que los plugins conectan con nuestra app.

Para agregar un plugin, debemos ejecutar por consola, ubicados en el directorio raíz de nuestro proyecto, lo siguiente:

$ cordova plugin add nombre_unico

Sencillo… el listado básico de plugins disponibles:

$ cordova plugin add org.apache.cordova.device
$ cordova plugin add org.apache.cordova.network-information
$ cordova plugin add org.apache.cordova.battery-status
$ cordova plugin add org.apache.cordova.device-motion
$ cordova plugin add org.apache.cordova.device-orientation
$ cordova plugin add org.apache.cordova.geolocation
$ cordova plugin add org.apache.cordova.camera
$ cordova plugin add org.apache.cordova.media-capture
$ cordova plugin add org.apache.cordova.media
$ cordova plugin add org.apache.cordova.file
$ cordova plugin add org.apache.cordova.file-transfer
$ cordova plugin add org.apache.cordova.dialogs
$ cordova plugin add org.apache.cordova.vibration
$ cordova plugin add org.apache.cordova.contacts
$ cordova plugin add org.apache.cordova.globalization
$ cordova plugin add org.apache.cordova.splashscreen
$ cordova plugin add org.apache.cordova.inappbrowser
$ cordova plugin add org.apache.cordova.console
$ cordova plugin add com.phonegap.plugins.barcodescanner

Para qué sirve cada uno?

  • org.apache.cordova.device: Aporta información general del dispositivo, como el modelo, versión o plataforma
  • org.apache.cordova.network-information: Aporta información sobre la conexión a la red, como el modo de conexión (wifi, 3G, 4G) o la carencia de conexión (estado offline)
  • org.apache.cordova.battery-status: Nos permite conocer el nivel de batería del dispositivo en cada momento, ideal para impedir realizar ciertos procesos que exijan mucha batería o una estabilidad importante (como la sincronización de datos con un servidor)
  • org.apache.cordova.device-motion: Nos permite acceder al acelerímetro del dispositivo.
  • org.apache.cordova.device-orientation: Nos permite controlar la orientación del dispositivo.
  • org.apache.cordova.geolocation: Acceso al GPS del dispositivo
  • org.apache.cordova.camera: Acceso a la cámara del dispositivo
  • org.apache.cordova.media-capture: Permite la grabación de video/audio
  • org.apache.cordova.media: Permite acceder y grabar ficheros de audio
  • org.apache.cordova.file: Permite acceder al sistema de archivos del dispositivo.
  • org.apache.cordova.file-transfer: Permite transferir archivos con el dispositivo.
  • org.apache.cordova.dialogs: Permite lanzar las alertas del dispositivo y capturar el resultado.
  • org.apache.cordova.vibration: Permite hacer vibrar el dispositivo.
  • org.apache.cordova.contacts: Permite acceder a la libreta de contactos del dispositivo (tanto acceder como crear, modificar y eliminar)
  • org.apache.cordova.globalization: Podemos acceder a la configuración de idioma, región, franja horaria, etc. del dispositivo.
  • org.apache.cordova.splashscreen: Permite que nuestra app tenga un splashscreen
  • org.apache.cordova.inappbrowser: Permite abrir nuevos webviews
  • org.apache.cordova.console: Permite escribir mensajes en el log del dispositivo
  • com.phonegap.plugins.barcodescanner: Permite acceder al escaner de códigos QR y retorna el resultado de leer el QR

Además de estos plugins, exiten cientos más disponibles, que podemos encontrar en una página web dónde se recopilan todos los plugins disponibles: http://plugins.cordova.io/#/ Actualmente, hay 749 plugins que, entre otras cosas, nos permite acceder al Bluetooth, NFC, etc… prácticamente se puede hacer de todo!

Codificando nuestra app

Una vez creado el proyecto, agregadas las plataformas e instalados los plugins llega el momento de programar nuestra app. En este artículo no vamos a entrar en este punto, pero a modo de resumen, deberíamos ir a nuestro index.html de www, cargar en él los ficheros CSS y JS necesariso y, en nuestro javascript, programaríamos la aplicación utilizando las APIs de JS que los plugins de Cordova nos proporcionan.

Una vez programada la app, o simplemente cuando quisiéramos probarla, llegaría el momento de compilarla.

Compilar nuestro proyecto en Cordova

Ya con nuestra aplicación terminada, llega el momento de compilarla. El proceso de compilación es requerido porque es el momento en el cual Cordova va a coger nuestro código HTML5 y los plugins de Cordova que hemos agregados y, con todos ellos, creará una aplicación para cada de las plataformas soportadas.

Para compilar es sencillo, sólo un comando desde nuestro CLI y, como siempre, ubicados en la raíz de nuestra app:

$ cordova build

Ejecutado este comando, Cordova empezará con el proceso de compilación de nuestras apps. Como en nuestro caso sólo estamos teniendo en cuenta la plataforma android, una vez termine del proceso, tendremos una aplicación lista para usar en nuestros dispositivos android.

La aplicación compilada la encontraremos en:

$ cd $HOME/cordova-projects/platforms/android/ant-build/CordovaApp-debug.apk

Este APK es la aplicación lista para testeo. No es una aplicación lista para incorporar a la tienda porque no está firmada y, además, está en modo debug; es una aplicación lista para probar. Es igual que la aplicación definitiva, sólo que está pensada en que probemos su resultado y, una vez esté todo terminado, poder construir la aplicación a subir a la tienda.

Este APK podremos probarla en nuestros propios dispositivos o en un dispositivo emulado que creemos desde el entorno gráfico del SDK de Android… pero esto ya será tratado en futuros artículos sobre Cordova.

Objetivo conseguido: Ya sabemos crear un proyecto en Cordova

Llegados al final de este artículo, ya sabemos qué es Cordova y por qué nos interesa utilizarlo para desarrollar nuestras apps. También sabemos que Cordova y Phonegap, en esencia son lo mismo.

Además, hemos visto como instalar el SDK de Android y el NPM, requisitos mínimos para poder instalar Cordova y crear un proyecto para Android. También hemos instalado Cordova, creado nuestro primer proyecto en Córdova, al que le hemos indicado que soportaremos Android, incluyendo una serie de plugins que podremos utilizar en nuestra aplicación. Por último, hemos compilado nuestra aplicación en un fichero APK para que podas probar el resultado de nuestro trabajo.

En futuros artículos, continuaremos avanzando en el mundo de Cordova, creando pequeñas apps en HTML5 para explicar los diferentes plugins más interesantes… probaremos nuestras apps en dispositivos emulados y aprenderemos a transformar nuestro APK de testeo en un APK listo para subir a la tienda.

¿Algo más que consideréis interesante ver sobre Cordova?

12 pensamientos en “Instalar Cordova en Ubuntu

  1. Por favor ayuda en el ultimo paso me salio un error $ cordova build

    Total time: 1 minute 13 seconds

    /home/luciano/cordova-projects/hello/platforms/android/cordova/node_modules/q/q.js:126
    throw e;
    ^
    Error code 1 for command: ant with args: debug,-f,/home/luciano/cordova-projects/hello/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
    ERROR building one of the platforms: Error: /home/luciano/cordova-projects/hello/platforms/android/cordova/build: Command failed with exit code 8
    You may not have the required environment or OS to build this project
    luciano@luciano-luciano:~/cordova-projects/hello$

    1. Buenas,

      Prueba a quitar la plataforma y volver a ponerla. Dentro de tu proyecto:

      luciano@luciano-luciano:~/cordova-projects/hello$ cordova platform remove android
      luciano@luciano-luciano:~/cordova-projects/hello$ cordova platform add android

      Si no… algún problema durante la instalación? en qué SO lo estás montando? etc etc

      saludos!

        1. Comprueba que tengas todo bien instalado. Hablamos de la mismo distro? ubuntu? qué versión? Te descargaste la versión correcta del sdk de android? java, ant, etc?

          Cómo tienes el config.xml del proyecto?

    2. Al añadir la plataforma estuviste conectado a internet? Al añadir la plataforma Córdoba requiere que se descargar un plugin llamado cordova .plugin.whitelist.

      Así que elemina la plataforma y vuelve la añadir con internet.

  2. Hola Rolando:

    Hace poco desarrollé una app para Android como complemento a una aplicación de escritorio.
    Es simplemente una aplicación para llevar un control de a quién se prestan los libros (en papel) y la app de Android se utiliza para escanear los códigos de barras e introducirlos en la base de datos de la aplicación de escritorio.

    Existe una versión que funciona en: https://github.com/adelolmo/biblio

    Recientemente me he interesado por el desarrollo en Cordova y creo que portar la app sería un buen ejercicio.
    A lo mejor te sirve como idea para un tutorial.

    Gracias por tu dedicación,
    Andoni

  3. Hola amigo, fijate que al tratar de compilar, me sale este error y ahí para todo:

    Running command: /home/cristian/cordova-projects/hello/platforms/android/cordova/build
    [Error: ANDROID_HOME is not set and “android” command not in your PATH. You must fulfill at least one of these conditions.]
    ERROR building one of the platforms: Error: /home/cristian/cordova-projects/hello/platforms/android/cordova/build: Command failed with exit code 2
    You may not have the required environment or OS to build this project
    Error: /home/cristian/cordova-projects/hello/platforms/android/cordova/build: Command failed with exit code 2
    at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:756:16)
    at Process.ChildProcess._handle.onexit (child_process.js:823:5)

    qué será que se hizo mal?
    mi distribución de ubuntu es la 10.4….

    1. Buenas,

      El error te dice que no encuentra el programa android para ser ejecutado. Comprueba los directorios incluidos en la variable de entorno PATH haciendo un echo ${PATH} y para configurarlo puedes verlo en la zona de “Instalando el SDK de Android”

      saludos

  4. Hi,
    Is there any sponsor mobile app(IOS & Android) review or guest post opportunity on rolandocaldas.com?

    Regards,
    Cece Boyd.

  5. tuve este error:

    module.js:340
    throw err;
    ^
    Error: Cannot find module ‘bplist-parser’
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object. (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/node_modules/cordova-common/src/ConfigChanges/ConfigFile.js:20:14)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

    La soluciona es:

    sudo npm install -g bplist-parser
    sudo npm install -g minimatch
    sudo npm install -g inherits
    sudo npm install -g path-is-absolute
    sudo npm install -g inflight
    sudo npm install -g once

  6. Hola Rolando, al iniciar el BUILD android –verbose

    Este es el error que me indica

    cordova build –verbose
    Executing “before_build” hook for all plugins.
    Executing “before_prepare” hook for all plugins.
    Searching PlatformJson files for differences between project vs. platform installed plugins
    No differences found between project and android platform. Continuing…
    Searching PlatformJson files for differences between project vs. platform installed plugins
    No differences found between project and ubuntu platform. Continuing…
    Generating config.xml from defaults for platform “android”
    Generating config.xml from defaults for platform “ubuntu”
    Wrote out Android application name to “HelloWorld”
    Wrote out Android package name to “com.example.hello”
    This app does not have launcher icons defined
    updated project successfully
    Executing “after_prepare” hook for all plugins.
    Executing “before_compile” hook for all plugins.
    ANDROID_HOME=/opt/android-sdk-linux
    JAVA_HOME=/opt/jdk1.7
    Exception in thread “main” java.lang.RuntimeException: Timeout of 120000 reached waiting for exclusive access to file: /home/greenbox/.gradle/wrapper/dists/gradle-2.2.1-all/2m8005s69iu8v0oiejfej094b/gradle-2.2.1-all.zip
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:61)
    at org.gradle.wrapper.Install.createDist(Install.java:47)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
    Error: Error code 1 for command: /home/greenbox/cordova-projects/hello/platforms/android/gradlew with args: cdvBuildDebug,-b,/home/greenbox/cordova-projects/hello/platforms/android/build.gradle,-Dorg.gradle.daemon=true,-Pandroid.useDeprecatedNdk=true

    Y no sabemos como proceder. agradezco sus comentarios

    Cordialmente

    E.Mora

  7. Con respecto a mi consulta anterior, deseo comentarles que ya se resolvió.

    Lo que hice fue basado en otro sitio.
    Remover la carpeta
    /home/greenbox/.gradle/

    Luego removi la plataforma ANDROID
    Luego agregué la plataforma ANDROID

    Luego construí y falló de nuevo .

    Luego dí un sudo apt-get update

    Luego construí y ya sirvió

    Saludos y gracias

Deja un comentario