Qt Creator 3.2.1 incluyendo .jar para Android

Hola a todos y lo siento de antemano por hacer esta pregunta, pero después de cinco días de búsqueda en stackoverflow y haciendo google-ingeniería todavía no tengo respuesta para mi pregunta:

Me gustaría incluir varios archivos * .jar en mi proyecto que serán utilizados por mi aplicación Android después de que Qt lo haya compilado.

Aquí está mi entorno:

  • Instalado Qt Creator 3.2.1 (exe, no compilado de fuentes)
  • Main.cpp (inicio de Qt-Part)
  • Android / MainActivity.java (a partir de material simple "Hola mundo" e incluirá diferentes clases proporcionadas por el .jars (google-api-client-1.19.0.jar google-api-client-android-1.19.0.jar google- Http-client-1.19.0.jar google-http-client-android-1.19.0.jar google-cliente-jackson-1.19.0.jar google-oauth-client-1.19.0.jar jackson-core- Asl-1.9.13.jar jsr305-1.3.9.jar)
  • Android / AndroidManifest.xml
  • Android / libs que contienen los .jars necesarios

Después de buscar en Google para ese problema, he intentado casi todo, obteniendo el mismo resultado cada vez: los .jars no se encuentran para la aplicación de Android o el proceso de construcción no funcionó:

[javac] C:\workspaces\qt_android\build-GsQt-Android\android-build\src\com\gservice\MainActivity.java:14: error: package com.google.android.gms.common does not exist [javac] import com.google.android.gms.common.ConnectionResult; [javac] ^ [javac] C:\workspaces\qt_android\build-GsQt-Android\android-build\src\com\gservice\MainActivity.java:15: error: package com.google.android.gms.common.api does not exist [javac] import com.google.android.gms.common.api.GoogleApiClient; [javac] ^\MainActivity.java:15: error: package com.google.android.gms.common.api does not exist 

Y así sucesivamente, para todos los ocho frascos que se incluirán.

Aquí están las cosas que traté de incluir:

  • Creado una carpeta dentro de android, llamado "libs" y poner mis tarros en ella. Después de crear el proyecto, la carpeta y los tarros se han copiado en el directorio de compilación. Por no al dispositivo como parece.
  • Los incluyó como otros archivos simples como el AndroidManifest y MainActivity:
 OTHER_FILES += \ android/libs/google-api-client-1.19.0.jar \ android/libs/google-api-client-android-1.19.0.jar \ android/libs/google-api-services-gmail-v1-rev2-1.18.0-rc.jar \ android/libs/google-http-client-1.19.0.jar \ android/libs/google-http-client-android-1.19.0.jar \ android/libs/google-http-client-jackson-1.19.0.jar \ android/libs/google-oauth-client-1.19.0.jar \ android/libs/jackson-core-asl-1.9.13.jar \ android/libs/jsr305-1.3.9.jar \ android/AndroidManifest.xml \ android/src/com/gservice/MainActivity.java \ 
  • Probando los activos-inclusión en el archivo .pro:
 LIBS_INSTALL_PATH=/assets/libs 

Libraries.path = android / libs libraries.files + = google-api-cliente-1.19.0.jar google-api-cliente-android-1.19.0.jar google-http-client-1.19.0.jar google-http -client-android-1.19.0.jar google-http-client-jackson-1.19.0.jar google-oauth-cliente-1.19.0.jar jackson-core-asl-1.9.13.jar jsr305-1.3.9 .jar libraries.depends + = FORCE INSTALLS + = bibliotecas

  • Crear un archivo libraries.qrc e incluirlo a través de RESOURCES + = libraries.qrc en el archivo .pro. Libraries.qrc:
 <RCC> <qresource prefix="/libs"> <file>android/libs/google-api-client-1.19.0.jar</file> <file>android/libs/google-api-client-android-1.19.0.jar</file> <file>android/libs/google-api-services-gmail-v1-rev2-1.18.0-rc.jar</file> <file>android/libs/google-http-client-1.19.0.jar</file> <file>android/libs/google-http-client-android-1.19.0.jar</file> <file>android/libs/google-http-client-jackson-1.19.0.jar</file> <file>android/libs/google-oauth-client-1.19.0.jar</file> <file>android/libs/jackson-core-asl-1.9.13.jar</file> <file>android/libs/jsr305-1.3.9.jar</file> </qresource> </RCC> 
  • Intentar con qmake (que devuelve un error, no se encuentra el archivo rcc) "rcc -binary google-api-client-1.19.0.jar -o google-api-client-1.19.0.rcc" como parámetro adicional

… Realmente no sé qué hacer a continuación, todas las configuraciones de Android (JDK, SDK, NDK, Ant) están en el lugar correcto y son accesibles, se han establecido JAVA_HOME var y ANT var.

Dos perfumes al final: el código que quiero incluir para Android es una aplicación de autenticación de Google+ que ya he creado con el ADT de Android y que funciona bien. Transferiré esos componentes de trabajo al entorno de compilación de Qt.

Gracias de antemano por leer esa descripción looooong y por ayudarme a conseguir que resuelto!

Leal

SOLUCIÓN:

Hay una manera de incluir y usar archivos .jar con Android y Qt. Y es ciertamente la manera más fácil que uno puede imaginar:

  1. Abra la carpeta android de su proyecto Qt
  2. Cree una carpeta llamada "libs" (el mismo nivel que la carpeta "src" y "AndroidManifest.xml")
  3. Coloque los archivos * .jar que desee utilizar en la carpeta libs
  4. Importarlos dentro de su archivo android-java como de costumbre

Eso es. Ninguna adaptación de Project.pro o main.qrc necesaria y tampoco hay necesidad de crear un archivo .properties para android o similar.

OTHER_FILES es sólo para consumo humano. Sólo es utilizado por el explorador de proyectos de Qt Creator para incluir los archivos en el árbol. No se utiliza en el proceso de construcción en absoluto.

El sistema de recursos Qt (QRC) sólo se puede utilizar desde QFile , la máquina virtual Android no tiene conocimiento de esos "archivos".

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.