Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Compilando para Android

Ver también

Esta página describe cómo compilar binarios de plantillas de exportación de Android desde el código fuente. Si estás buscando exportar tu proyecto a Android, lee Exportación para Android.

Nota

En la mayoría de los casos, usar el desplegador incorporado y las plantillas de exportación es suficiente. Compilar el APK de Android manualmente es principalmente útil para compilaciones personalizadas o paquetes personalizados para el desplegador.

También es necesario seguir los pasos mencionados en el tutorial Exportación para Android antes de intentar construir una plantilla de exportación personalizada.

Requerimientos

Para compilar en Windows, Linux o macOS, se requiere lo siguiente:

  • Python 3.6+.

  • El sistema de construcción SCons 3.0+.

  • Android SDK (las herramientas de línea de comandos son suficiente).

    • Los componentes del SDK necesarios se instalarán automáticamente.

    • En Linux,

      do not use an Android SDK provided by your distribution's repositories as it will often be outdated.

  • Gradle (se descargará e instalará automáticamente si falta).

  • JDK 17 (either OpenJDK or Oracle JDK).

Ver también

Para obtener el código fuente de Godot para compilarlo, consulta la sección Consiguiendo el código fuente.

Para obtener una visión general del uso de SCons para Godot, consulta la sección Introducción al sistema de compilación.

Configurando el sistema de construcción

  • Set the environment variable ANDROID_HOME to point to the Android SDK. If you downloaded the Android command-line tools, this would be the folder where you extracted the contents of the ZIP archive.

  • Instala los componentes necesarios del SDK en esta carpeta:

    • Acepta las licencias de los componentes del SDK ejecutando el siguiente comando donde android_sdk_path es la ruta al SDK de Android y luego respondiendo todas las solicitudes con y:

    cmdline-tools/latest/bin/sdkmanager --sdk_root=<android_sdk_path> --licenses
    
    • Completa la configuración ejecutando el siguiente comando donde android_sdk_path es la ruta al SDK de Android.

    cmdline-tools/latest/bin/sdkmanager --sdk_root=<android_sdk_path> "platform-tools" "build-tools;30.0.3" "platforms;android-29" "cmdline-tools;latest" "cmake;3.10.2.4988404"
    

Ver también

Para configurar la variable de entorno en Windows, presiona Windows + R, escribe "control system" y luego haz clic en Configuración avanzada del sistema en el panel izquierdo. A continuación, haz clic en Variables de entorno en la ventana que aparece.

Ver también

To set the environment variable on Linux or macOS, use export ANDROID_HOME=/path/to/android-sdk where /path/to/android-sdk points to the root of the SDK directories.

Construyendo las plantillas de exportación

Godot necesita dos plantillas de exportación para Android: la plantilla optimizada "release" (android_release.apk) y la plantilla de depuración (android_debug.apk). Como Google requerirá que todos los APKs incluyan bibliotecas ARMv8 (64 bits) a partir de agosto de 2019, los comandos a continuación construirán un APK que contiene tanto bibliotecas ARMv7 como ARMv8.

La compilación de las plantillas de exportación estándar se realiza llamando a SCons desde el directorio raíz de Godot con los siguientes argumentos:

  • Release template (se utiliza al exportar con Debugging Enabled apagado)

scons platform=android target=template_release arch=arm32
scons platform=android target=template_release arch=arm64
cd platform/android/java
# On Windows
.\gradlew generateGodotTemplates
# On Linux and macOS
./gradlew generateGodotTemplates

El APK resultante se ubicará en bin/android_release.apk.

  • Debug template (se utiliza cuando se exporta con Debugging Enabled encendido)

scons platform=android target=template_debug arch=arm32
scons platform=android target=template_debug arch=arm64
cd platform/android/java
# On Windows
.\gradlew generateGodotTemplates
# On Linux and macOS
./gradlew generateGodotTemplates

El APK resultante se ubicará en bin/android_debug.apk.

Ver también

If you want to enable Vulkan validation layers, see Vulkan validation layers on Android.

Añadir soporte para dispositivos x86

If you also want to include support for x86 and x86-64 devices, run the SCons command a third and fourth time with the arch=x86_32, and arch=x86_64 arguments before building the APK with Gradle. For example, for the release template:

scons platform=android target=template_release arch=arm32
scons platform=android target=template_release arch=arm64
scons platform=android target=template_release arch=x86_32
scons platform=android target=template_release arch=x86_64
cd platform/android/java
# On Windows
.\gradlew generateGodotTemplates
# On Linux and macOS
./gradlew generateGodotTemplates

Esto creará un binario universal que funciona en todas las plataformas. El tamaño final del APK de los proyectos exportados dependerá de las plataformas que elijas para soportar al exportar; en otras palabras, las plataformas no utilizadas se eliminarán del APK.

Limpiando las plantillas de exportación generada

Puedes utilizar los siguientes comandos para eliminar las plantillas de exportación generadas:

cd platform/android/java
# On Windows
.\gradlew clean
# On Linux and macOS
./gradlew clean

Usando las plantillas de exportación

Godot necesita APKs de lanzamiento y depuración que se hayan compilado con la misma versión o commit que el editor. Si estás utilizando binarios oficiales del editor, asegúrate de instalar las plantillas de exportación coincidentes o construye las tuyas propias a partir de la misma versión. Esto garantizará la compatibilidad entre el editor y las plantillas de exportación para un correcto funcionamiento.

Al exportar tu juego, Godot abre el APK, cambia algunas cosas dentro y añade tus archivos.

Instalando las plantillas

Las plantillas recién compiladas (android_debug.apk y android_release.apk) deben ser copiadas a la carpeta de plantillas de Godot con sus respectivos nombres. La carpeta de plantillas puede estar ubicada en:

  • Windows: %APPDATA%\Godot\export_templates\<version>\

  • Linux: $HOME/.local/share/godot/export_templates/<version>/

  • macOS: $HOME/Library/Application Support/Godot/export_templates/<version>/

<versión> tiene el formato mayor.menor[.parche].estado utilizando los valores de version.py en tu repositorio de código fuente de Godot (por ejemplo, 3.0.5.stable o 3.1.dev). También debes escribir esta misma cadena de versión en un archivo llamado version.txt que se encuentra junto a tus plantillas de exportación.

Sin embargo, si estás escribiendo tus propios módulos personalizados o código C++ personalizado, es posible que desees configurar tus APKs como plantillas de exportación personalizadas aquí:

../../../_images/andtemplates.png

No es necesario ni siquiera copiarlos, simplemente puedes hacer referencia al archivo resultante en el directorio bin\ de la carpeta de origen de Godot, de modo que la próxima vez que construyas, tendrás automáticamente las plantillas personalizadas referenciadas.

Building the Godot editor

Compiling the editor is done by calling SCons from the Godot root directory with the following arguments:

scons platform=android arch=arm32 production=yes target=editor
scons platform=android arch=arm64 production=yes target=editor
scons platform=android arch=x86_32 production=yes target=editor
scons platform=android arch=x86_64 production=yes target=editor
cd platform/android/java
# On Windows
.\gradlew generateGodotEditor
# On Linux and macOS
./gradlew generateGodotEditor

The resulting APK will be located at bin/android_editor_builds/android_editor-release.apk.

Removing the Editor templates

You can use the following commands to remove the generated editor templates:

 cd platform/android/java
 # On Windows
.\gradlew clean
# On Linux and macOS
./gradlew clean

Installing the Godot editor

With an Android device with Developer Options enabled, connect the Android device to your computer via its charging cable to a USB/USB-C port. Open up a Terminal/Command Prompt and run the following commands from the root directory with the following arguments:

adb install ./bin/android_editor_builds/android_editor-release.apk

Solución De Problemas

Plataforma no aparece en SCons

Double-check that you've set the ANDROID_HOME environment variable. This is required for the platform to appear in SCons' list of detected platforms. See Setting up the buildsystem for more information.

Aplicación no instalada

Android podría mostrar un mensaje indicando que la aplicación no está instalada correctamente. Si esto sucede:

  • Verifica que el almacén de claves de depuración (debug keystore) esté correctamente generado.

  • Revisar que el ejecutable jarsigner es de JDK 8.

Si aún falla, abre una línea de comandos y ejecuta logcat:

adb logcat

Luego, revisa la salida mientras la aplicación está instalada; el mensaje de error debería aparecer allí. Si no puedes resolverlo, busca ayuda para solucionar el problema.

La aplicación se cierra inmediatamente

Si la aplicación se ejecuta pero se cierra inmediatamente, esto podría deberse a una de las siguientes razones:

  • Asegúrate de utilizar plantillas de exportación que coincidan con la versión de tu editor; si utilizas una nueva versión de Godot, debes actualizar también las plantillas.

  • libgodot_android.so is not in libs/<arch>/ where <arch> is the device's architecture.

  • La arquitectura del dispositivo no coincide con la(s) arquitectura(s) exportada(s). Asegúrate de que tus plantillas hayan sido compiladas para la arquitectura del dispositivo y que la configuración de exportación incluya soporte para esa arquitectura.

En cualquier caso, adb logcat también debería mostrar la causa del error.