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.
- ¿Dónde se encuentra el botón "Crear AndroidManifest.xml" en Qt Creator 3.3.0?
- Enredado con la prueba de Google
- Qt para android: cambia el icono de la aplicación
- Depuración de la aplicación android en el destino en QtCreator
- Qt Creator: No se han encontrado juegos válidos para Android
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
- No se puede construir Android APK en Qt Creator
- ¿Cómo especificar bibliotecas sólo para plataforma Android construir en el archivo .pro?
- Android NDK: ¿Por qué desapareció arm-linux-androideabi-gdb.exe?
- Qt: Cómo configurar el icono de la aplicación en Android e iOS
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:
- Abra la carpeta android de su proyecto Qt
- Cree una carpeta llamada "libs" (el mismo nivel que la carpeta "src" y "AndroidManifest.xml")
- Coloque los archivos * .jar que desee utilizar en la carpeta libs
- 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".