Compilar para Android
Última actualización Diciembre 15, 2020
[ADVERTENCIA] La compilación para Android está actualmente dañada, debido a cambios en Qt y Gradle. Tu ayuda con la actualización (o reescritura) de los scripts de Gradle sería genial.
Lea la guía general de compilación para obtener información sobre cómo compilar en otras plataformas. Este archivo solo incluye instrucciones específicas para Android. Tenga en cuenta que estas instrucciones son válidas para compilar en Oculus Quest 1.
Dependencias
La compilación soporta Windows, OSX y Linux, pero se recomienda a los desarrolladores que deseen trabajar en las dependencias de la biblioteca que utilicen Linux de 64 bits como plataforma de compilación.
Dependencias específicas del Sistema Operativo
Instale las dependencias para su sistema operativo siguiendo las instrucciones de compilación para Windows, OSX o Linux antes de intentar compilar para Android.
Android Studio
Descarga el instalador de Android Studio y ejecútalo. Una vez instalado, haz clic en File, luego en Settings, expande Appearence & Behavior, luego System Settings y selecciona Android SDK.
Desde la pestaña SDK Platforms, seleccione los API Levels 26 y 28.
Desde la pestaña SDK Tools, seleccione
Herramientas de compilación del SDK de Android
Herramientas de depuración de GPU
LLDB
Herramientas de Plataforma del SDK de Android
Herramientas del SDK de Android
NDK (aún si ha instalado NDK por separado)
En la pestaña SDK Tools, marque Show Package Details en la parte inferior. Seleccione CMake 3.6.4. Haga esto incluso si tiene una instalación independiente de CMake. Además, asegúrese de que la versión del NDK instalado sea la 18 (o superior).
Ahora retorne a File - Project Structure y luego, en Project, establece la Versión del complemento Gradle de Android en 3.2.1 y la Versión Gradle en 4.10.1.
Si Android Studio abre el cuadro de diálogo "Plugin Update Recommeded", no hagas clic en Actualizar, solo haz clic en la X en la parte superior derecha para cerrarlo. Las versiones posteriores del complemento Gradle tienen problemas conocidos con cz.malohlava.
Entorno
Crear un almacén de claves en Android Studio
Sigue las instrucciones aquí para crear un archivo de almacén de claves. Puedes guardarlo en cualquier lugar (preferiblemente fuera de la carpeta overte).
Configurar las propiedades específicas de Gradle
Crea un archivo gradle.properties en la carpeta .gradle ($HOME/.gradle en Unix, Users/<su nombre>/.gradle en Windows). Edita el archivo para que contenga lo siguiente
HIFI_ANDROID_PRECOMPILED=<your_home_directory>/Android/hifi_externals
HIFI_ANDROID_KEYSTORE=<key_store_directory>/<keystore_name>.jks
HIFI_ANDROID_KEYSTORE_PASSWORD=<password>
HIFI_ANDROID_KEY_ALIAS=<key_alias>
HIFI_ANDROID_KEY_PASSWORD=<key_passwords>
Nota: No use $HOME como ruta. Debe ser un nombre de ruta completo. Además, asegúrese de usar barras diagonales en la ruta.
Si estás compilando para Android
Agregue estas líneas al archivo gradle.properties
SUPPRESS_QUEST_INTERFACE
SUPPRESS_QUEST_FRAME_PLAYER
Si está compilando para Oculus Quest
Agregue estas líneas al archivo gradle.properties
SUPPRESS_INTERFACE
SUPPRESS_FRAME_PLAYER
El Frame Player tanto para Android como para Oculus Quest es opcional, por lo que si encuentra problemas con estos durante la compilación, puede omitirlos agregando estas líneas a gradle.properties
SUPPRESS_FRAME_PLAYER
SUPPRESS_QUEST_FRAME_PLAYER
Clonar el repositorio
git clone https://github.com/overte-org/overte.git
Compilar y ejecutar
Compilar los módulos
Abrir Android Studio
Seleccionar Open an existing Android Studio project
Navegar hasta el repositorio
overteque clonó. Elegir la carpetaandroidy seleccionar OKEsperar a que Gradle se sincronice (esto podría tardar más de 20 minutos la primera vez)
Si aparece un cuadro de diálogo con el mensaje "Plugin Update Recommeded", no haga clic en "Update", simplemente haga clic en la X situada en la parte superior derecha para cerrarlo.
En la ventana Project, haga clic en el proyecto que desee compilar (por ejemplo, «questInterface»), luego haga clic en Build en el menú superior y selecciona Make Module 'questInterface'
De forma predeterminada, esto creará el apk tipo "debug". Puede cambiarlo abriendo la ventana Build Variants (Variantes de compilación) en el lado izquierdo y seleccionando otros tipos de compilación, como "release" (lanzamiento).
El APK recién creado debe residir en
overte\android\apps\questInterface\release(si ha elegido la versión release).
Ejecutar un módulo
Puede utilizar la línea de comandos «adb» u otras herramientas de desarrollo para instalar (sideload en Quest) tu APK recién creado, o puede seguir las instrucciones que se indican a continuación para cargar el APK a través de Android Studio.
En la barra de herramientas situada en la parte superior de Android Studio, junto al icono del martillo verde, debería ver un menú desplegable.
Es posible que ya vea una configuración para el módulo que está intentando compilar. Si es así, selecciónela.
En otro caso, seleccione Edit Configurations.
Su configuración debe ser
Tipo: App para Android
Module: <su módulo> (probablemente
interfaceoquestInterface)
Para los módulos de interfaz, también debe seleccionar la actividad que desea iniciar.
Para la Interfaz Android
Desde el menú desplegable Launch , seleccione Specified Activity
En el cuadro de texto Activity, coloque
io.highfidelity.hifiinterface.PermissionChecker
Para la interfaz Oculus Quest
Desde el menú desplegable Launch , seleccione Specified Activity
En el campo Activity , colocar
io.highfidelity.questInterface.PermissionsChecker
Note la 's' en PermissionsChecker para Quest.
¡Ya puede ejecutar el módulo! Haga clic en el botón verde de reproducción en la barra de herramientas superior de Android Studio.
Solución de Problemas
Para ver un registro de depuración más detallado,
Haga clic en el icono con los dos cuadrados superpuestos en la esquina superior izquierda de la pestaña donde se está ejecutando la sincronización (el texto emergente dice Toggle view)
Para cambiar el nivel de detalle de las notificaciones, selecciones File > Settings. Bajo Build, Execution, Deployment > Compiler puede agregar banderas par la línea de comandos, tal como está definido en la documentación de Gradle
Si tiene problemas con CMake, pruebe a añadir la siguiente variable de entorno del sistema:
En el menú de inicio, busque ‘Editar las variables de entorno del sistema’ y ábralo.
Seleccione la pestaña 'Advanced' luego 'Environment Variables'
Seleccione 'Nuevo' en Variables del sistema
Agregue QT_CMAKE_PREFIX_PATH en "Variable name"
Establezca como «Variable value» el directorio en el que su compilación de Android colocó el directorio CMake de la biblioteca CMake 3.6.4 (por ejemplo: android\qt\lib\cmake).
Algunas cosas que puedes probar si quieres hacer una compilación limpia
Elimina las carpetas
buildy.externalNativeBuildde la carpeta de cada módulo que estás compilando (por ejemplo,overte/android/apps/interface)Si ha configurado la variable de entorno
HIFI_VCPKG_ROOT, elimine el contenido del directorio definido; de lo contrario, elimineAppData/Local/Temp/hifiEn Android Studio, haz clic en File > Invalidate Caches / Restart y selecciona Invalidate and Restart
Si ve muchos errores "couldn't acquire lock",
Abra el Administrador de Tareas y cierre todos los procesos Clang / Gradle que estén en ejecución