Compilación personalizada para Android

Godot provee la opción de usar templates de Android personalizados. En lugar de usar los templates pre-compilados que se distribuyen con Godot, un proyecto actual Java de Android es instalado en tu carpeta de proyecto. Godot lo compilará y lo usará como template cada vez que exportes el proyecto.

Hay algunas razones por las que puedes querer hacer esto:

  • Modifica el proyecto antes de compilarlo.
  • Añade SDKs externos que se compilan con tu proyecto.

La configuración de la compilación personalizada es un proceso más o menos sencillo, pero puede llevar un tiempo acostumbrarse a cómo funciona el SDK de Android.

Se proporcionarán instrucciones lo más detalladas posible para realizar este proceso.

Configurar el entorno de compilación personalizada

Ve al menu de Proyectos e instala la plantilla Estructura Personalizada:

../../../_images/custom_build_install_template.png

Asegurate de que las plantillas de exportación esten descargadas. Si no lo están, este menú te ayudara a descargarlas.

Esto creará un poyecto Android, basado en Gradle, en res://android/build, y creara un archivo .gdignore file in res://android para que el sistema de archivos de Godot ignore esta carpeta. No es necesario editar estos archivos, a no ser que quieras crear tus propios add-ons, o realmente necesites modificar el proyecto.

Instala el Android SDK (versión de linea de comandos)

Estos son los pasos para la instalación de Android SDK usando la línea de comandos. La gran ventaja de este método es la simplicidad y el pequeño tamaño de descarga/instalación. Aunque puede ser algo mas desafiante. El enfoque de Android Studio es mas fácil, pero este requiere la descarga e instalación de Android Studio (Lo cual puede requerir mas de 1gb de espacio).

Instala un JDK

Android SDK no viene con Java, así que este necesita ser instalado manualmente. Instala Java SDK (no sólo el runtime o JRE). OpenJDK 8 es requerido. Versiones más nuevas no funcionarán.

Descarga las herramientas de la línea de comandos

Ve a Android Studio download page. Para horrar espacio en disco, no querrás todo el IDE, así que no es necesario descargarlo.

Nota

Si quieres Android Studio, lee más abajo para instrucciones para hacer lo mismo usando Android Studio.

Mira en la pagina por Herramientas de la Línea de Comandos. En este momento, están listadas bajo Opciones de Descarga. Baja un poco hasta que las veas.

Descarga el archivo zip para tu plataforma, dentro habrá una sola carpeta tools:

../../../_images/custom_build_zip.png

Esto puede parecer un poco confuso, pero asegúrate de seguir estas instrucciones con cuidado:

Crea un nueva carpeta donde quieras, llamada android-sdk (debe ser un directorio vacío). En Windows, la siguiente ruta suele ser suficiente:

C:\users\<yourusername>\Documents\android-sdk

Nota

Si ya tienes una carpeta android-sdk, normalmente ubicada en %LOCALAPPDATA%\Android\Sdk, usa esta carpeta en lugar de crear una android-sdk vacía.

Descomprime el archivo ZIP de Android SDK en la carpeta android-sdk. Esta carpeta ahora tendrá una carpeta descomprimida llamada tools. Renombra tools a latest. Finalmente crea una carpeta vacía llamada cmdline-tools y coloca latest dentro, La estructura final de directorios debería verse así:

android-sdk/
android-sdk/cmdline-tools/
android-sdk/cmdline-tools/latest
android-sdk/cmdline-tools/latest/allTheOtherFiles

Necesitamos configurar la estructura de este modo para que funcione el sdkmanager (dentro de la carpeta bin).

Aceptando las licencias

Para poder utilizar las herramientas de Android SDK, Google requiere que aceptes sus licencias.

Para hacer esto, el sdkmanager debe ejecutarse desde línea de comandos con un argumento especial. Navega al directorio tools/bin dentro de la carpeta SDK (las instrucciones proporcionadas son para usuarios de Windows, ya que se espera que los usuarios de Linux y macOS entiendan cómo funciona la navegación por la línea de comandos):

../../../_images/custom_build_bin_folder.png

Luego abre una venta de linea de comandos:

../../../_images/custom_build_open_shell.png

Una vez allí, ejecuta sdkmanager --licenses:

../../../_images/custom_build_sdkmanager.png

Este preguntara por la aceptación de varias licencias, solamente escribe y y presiona Enter en cada uno de ellos hasta que termine.

Después, instala las herramientas de plataforma (esto es necesario para instalar adb):

../../../_images/custom_build_platform_tools.png

Si aparece un error diciendo Warning: Could not create settings, intenta ./sdkmanager --sdk_root=../../ --licenses o ./sdkmanager --sdk_root=../../ platform-tools. Esos deben ser ejecutados dentro de la carpeta /tools/bin/ porque la ruta para --sdk_root es relativa.

Generación del keystore

Una vez se hayan instalado las herramientas de plataforma, el último paso es generar un debug keystore (esto es necesario para la compilación). Sube dos carpetas escribiendo:

cd ..\..

(o abre una nueva consola en la carpeta android-sdk).

Y necesitarás introducir la siguiente línea (en Linux and macOS esto debería funcionar directamente, para Windows hay mas instrucciones debajo):

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

En Windows, se debe proporcionar la ruta de acceso completa a Java. Deberás agregar & al principio en la línea si PowerShell es usado, no es necesario para la consola normal cmd.exe.

Para hacerlo mas claro, aquí hay una captura de la línea que funciona en PowerShell (añadiendo un & y la ruta completa de Java a keytool.exe). Nuevamente, recuerda que necesitas Java instalado:

../../../_images/custom_build_command_line.png

(haz clic derecho y abre la imagen en una nueva pestaña si es demasiado pequeña)

Configurando Godot

Ve a Configuración del Editor y define algunos campos en Exportar > Android. Asegúrate que se vea como se muestra a continuación:

../../../_images/custom_build_editor_settings.png

(haz clic derecho y abre la imagen en una nueva pestaña si es demasiado pequeña)

Como puedes ver, la mayoría de las rutas van, o dentro de la carpeta android-sdk que creaste inicialmente, o dentro de la carpeta de instalación de Java. Para usuarios de Linux y macOS, jarsigner está usualmente en "/usr/bin".

Con todo esto, ya deberías estar preparado.

Instalar Android SDK (Android Studio)

Si acabas de instalar el SDK a través de las herramientas de línea de comandos, no dudes en saltarte esta sección por completo. La ruta de Android Studio es más fácil, pero ocupa más espacio en disco. También es útil si planeas desarrollar Godot para Android (modificar el código fuente de Java) o si planeas desarrollar add-ons.

Descargar e instalar Android Studio

Descarga la última versión de Android Studio. En la instalación, presta atención en dónde el directorio android-sdk es creado.

../../../_images/custom_build_install_android_studio1.png

Nota

Esto es divertido, la dirección que propone por defecto contiene espacio (y se queja de ello). Debe ser cambiada.

En cualquier caso, será mejor seleccionar un camino diferente dentro de tus archivos de usuarios. El recomendado es usualmente:

C:\Users\<yourusername>\Documents\android-sdk

Reemplaza yourusername por tu nombre de usuario real. Cuando todo esté correcto, selecciona una de las opciones de la lista anterior en la misma pantalla:

  • Android SDK
  • Android SDK Platform

El resto no son necesarios, porque el sistema de armado los extraerá él mismo. Después de seleccionarlos, continua con la instalación.

Generación del keystore

Ve al archivo donde instalaste android-sdk en el paso previo, usa el Explorador de Archivos y abre una herramienta de línea de comandos allí:

../../../_images/custom_build_open_shell.png

La línea de comandos a escribir es la siguiente. En Linux y macOS esto debería de funcionar directamente, pero en Windows se necesitan detalles adicionales (lee a continuación).

keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

En Windows, debe ser provista la ruta completa a Java (y un & necesita ser añadido al comienzo de la línea si ocupas PowerShell, no es necesario en la consola regular cmd.exe). No te preocupes, al menos por usar Android Studio en Windows, Java viene con este.

Para hacerlo mas claro, aquí hay una captura de una línea que funciona en PowerShell (añadiendo un & y la ruta completa de Java a keytool.exe, remueve & si utilizas cmd.exe). Usa una ruta a la versión de Java que viene con Android Studio:

../../../_images/custom_build_command_line2.png

(haz clic derecho y abre la imagen en una nueva pestaña si es demasiado pequeña)

Configurando Godot

Ve a Configuración del Editor y define algunos campos en Exportar > Android. Asegúrate que se vea como se muestra a continuación:

../../../_images/custom_build_editor_settings2.png

(haz clic derecho y abre la imagen en una nueva pestaña si es demasiado pequeña)

Como puedes ver, la mayoría de las rutas van, o dentro de la carpeta android-sdk que creaste inicialmente, o dentro de la carpeta de instalación de Java. Para usuarios de Linux y macOS, jarsigner está usualmente en "/usr/bin".

Con todo esto, ya deberías estar preparado.

Habilitando la compilación y exportación personalizada

Cuando configures el proyecto Android en el cuadro de diálogo Project > Export, es necesario activar Custom Build:

../../../_images/custom_build_enable.png

Por ahora, intentar exportar el proyecto o un despliegue de un clic va a llamar el sistema de compilación Gradle para generar plantillas frescas (esta ventana aparecerá siempre):

../../../_images/custom_build_gradle.png

Las plantillas generadas se utilizarán automáticamente posteriormente, por lo que no es necesario realizar ninguna otra configuración.