Esta semana en la clase de Pr2 probamos Qt, y le comentaba a mis alumnos de la facilidad de creación de interfaces gráficas usando la biblioteca Qt para un programador que conoce C++. También les comentaba que había leído que se era posible tener aplicaciones hechas en C++ usando Qt en Android. Este fin de semana quise hacer esa prueba, la principal herramienta usada es Necessitas, ésta provee un QtCreator para Android, y en el teléfono celular usé Ministro como proveedor de Qt en Android. A continuación describo como lo hice.
Pasos
- Instalación desde el Adroid Market de las bibliotecas de Qt a través de Ministro en el teléfono móvil con Android.
- Instalar Necessitas en Ubuntu (mi Ubuntu actual es 11.10)
- Bajar de http://sourceforge.net/projects/necessitas/files/, en mi caso bajé necessitas-0.3-online-sdk-installer-linux
- Instalar Java en Ubuntu (no lo tenia instalado en la máquina de mi casa, esto es requerido por Necessitas)
sudo aptitude install openjdk-6-jdk
- Descargar e instalar el SDK para Android, mi teléfono tienen Froyo, así que instale los paquetes para Android 2.2.2 y creé un dispositivo virtual android (ADV), eso se hace con programa android que está en el directorio tools del SDK de Android.
- Instalación de Necessitas:
chmod +x necessitas-0.3-online-sdk-installer-linux sudo ./necessitas-0.3-online-sdk-installer-linux
La instalación la hice en /opt/NecessitasQtSDK, pero luego me puse como dueño del directorio, ya que muchos directorios con programas ejecutables tienen permiso 700. Tambien hacia falta instalar ant.
Listo, lo siguiente fue crear una aplicación sencilla para probar, lo mas simple después del “Hola Mundo” es un programa que lea dos números y luego de presionar un botón muestre la suma. La interfaz de usuario se ve a continuación:
Prueba Qt Android Sumador El código del programa de prueba está aquí, luego de compilado se prueba en el ADV (no lo hice, pero es lo recomendado).
Para iniciar el qtcreator de necessitas ejecuté:
/opt/NecessitasQtSDK/QtCreator/bin/necessitas
Una vez construida la aplicación, se activa en el teléfono las opciones de Desarrollo, se conecta el teléfono via USB, y deste el QtCreator se pide ejecutar el programa en el dispositivo Android (mi teléfono).
Cuando la aplicación comennzó a ejecutarse pidió actualizar Ministro y luego descargó algunas bibliotecas de Qt para el móvil. La aplicación se ejecutó bien y a continuación se ve la aplicación ejecutándose en mi teléfono móvil.
Mi primera aplicación de Qt en Andoid
Bueno, apreciados alumnos espero que prueben estos pasos y continúen animados a seguir aprendiendo Qt y, por supuesto, C++.
Páginas usadas en el orden en que las obtuve de Google:
Necessitas, o cómo portar las aplicaciones Qt de Nokia a la plataforma Android
Bringing Qt applications to Android – a quickstart video
Upsss, se me había olvidado y puede ser importante para ahorrar tiempo, al compilar e intentar empaquetar para el desplegar en el telefono obtuve un error, y la solución la encontré aquí : voy a copiar la solución en caso de que la entrada del blog desaparezca:
Inside Necessitas Qt Creator, click Projects (on the left side bar) -> Run Settings -> Deployment -> Package configurations -> Android targer SDK. Change it from android-4 to android-10. Then, the issue will not appear any more.
Entrada recuperada gracias a Pablohn
¿Por que mi QTablewidget al momento de editar las celdas se requiere 03 toques en la pantalla?
Alguien tiene experiencia en ello?
Hola, tratando de construir el archivo .pak desde qt necessitas, sobre windows 7, al ejecutar el programa en un emulador AVD me da el siguiente error: ” Packaging Error: Command ‘C:\Qt\necessitas/apache-ant-1.8.4/bin/ant.bat clean debug’ failed. Exit Code: 1 “, en variables de entorno ya incluí:
1) JAVA_HOME = C:\Program Files\Java\jdk1.7.0_55\
2) ANT_HOME = C:\Qt\necessitas\apache-ant-1.8.4\
3) CLASSPATH = C:\Program Files\Java\jdk1.7.0_55\lib
4 Path = … %JAVA_HOME%\bin;%ANT_HOME%\bin
Que mas puedo hacer?
Gracias por su ayuda.
Hola Rodolfo, me avergüenza decirte que en estos momentos no tengo Windows para probar, le preguntare a mis amigos a ver que me dicen
Rodolfo a la final lo lograste hacer? tengo el mismo problema