Saltar al contenido
Inicio

Qué hace

Abre un proyecto Android y toca Compilar APK, el icono de Android de la barra del editor. El botón solo aparece en proyectos Android: los que tienen app/build.gradle.kts y el plugin com.android.application. En la paleta se describe así: Compila este proyecto Android a un APK en tu móvil.

Puedes

  • Compilar un APK de depuración para probarlo en tu móvil, firmado con una clave de depuración.
  • Compilar un APK de release, optimizado y firmado con tu propia clave, para compartirlo fuera de Google Play.
  • Compilar un Paquete de release (AAB), el formato que pide Google Play.
  • Usar librerías de Maven de Google Maven y Maven Central, con catálogos libs.versions.toml. Se descargan en la primera compilación y se quedan en el móvil.
  • Salir de la app mientras compila. Una notificación indica que la compilación sigue en marcha.
  • Abrir el mismo proyecto en Android Studio: las plantillas son proyectos Gradle estándar.

No puedes, y por qué

  • Compilar ficheros .java. Salen como Todavía no se admite en el móvil.​Aún no
  • Leer un build.gradle de Groovy. Solo funciona el DSL de Kotlin, build.gradle.kts.​Aún no
  • Instalar el APK desde dentro de PocketCode. Lo instala Android, desde la app Archivos.A propósito
  • Instalar un AAB en un móvil. Solo sirve para Google Play Console.A propósito

Crear un proyecto Android

Abre Proyectos y toca Nuevo para llegar a Nuevo proyecto. Hay dos plantillas Android. Las dos son proyectos Gradle estándar, así que también se abren en Android Studio.

PlantillaQué obtienes
App Android (Activity)Una app Android en Kotlin que compila un APK en tu móvil.
App Android (Compose)Lo mismo, con Jetpack Compose.
Cada plantilla trae un bloque release con isMinifyEnabled = false y el fichero proguard-rules.pro ya enlazado. Mira la sección de R8 para activar la reducción.

Compilar un APK de depuración

Un APK de depuración es la forma rápida de probar tu app en el móvil. Toca Compilar APK, elige APK de depuración en la hoja Compilar la app y toca Compilar.

  1. 1Comprobar el proyecto — lee los ficheros de Gradle y la estructura del proyecto.
  2. 2Descargar librerías — solo la primera vez, luego se quedan en el móvil.
  3. 3Recursos — prepara los recursos de la app.
  4. 4Compilar Kotlin — compila tu código.
  5. 5Preparar librerías para Android — solo la primera vez, luego se quedan guardadas.
  6. 6Empaquetar — monta el APK.
  7. 7Firmar — lo firma con la clave de depuración.

La hoja muestra estos pasos según avanzan, con Ver registro y Cancelar. La primera compilación tarda más y la hoja lo avisa. Si cancelas, no queda nada a medias: la caché y el APK solo se escriben completos.

La primera compilación

  • Las herramientas de Kotlin (kotlinc y d8) no vienen dentro de la app. Google Play las descarga una vez, unos 119 MB, la primera vez que compilas un APK o ejecutas un fichero .kt. Verás Preparando las herramientas de compilación y Descargando de Google Play: X de Y. Solo la primera vez.
  • Con datos móviles, Google Play puede pedirte permiso antes: Google Play necesita tu permiso para descargarlas. Toca Continuar la descarga.
  • Las herramientas necesitan la app instalada desde Google Play.
  • Si ejecutas un .kt antes de que estén las herramientas, el ejecutor de Kotlin muestra una tarjeta Herramientas de Kotlin: Se descargan una vez desde Google Play, unos 119 MB. Toca Descargar (~119 MB). Al terminar, tu fichero se ejecuta solo.

Cuánto tarda

  • En un Galaxy S24, la primera compilación de depuración de la plantilla Compose tardó 1 min 25 s, con la descarga de herramientas incluida. El APK pesaba 7,8 MB.
  • En un Galaxy S24, un «hola mundo» de Kotlin con las herramientas ya instaladas se ejecutó en menos de 1 s (266 ms).
  • Otros móviles irán más rápido o más lento. Son mediciones, no una promesa.

Instalar el APK

Al terminar, la hoja muestra APK listo con el tiempo, el tamaño y la clave usada.

  1. 1Toca Guardar en Descargas. El fichero va a Descargas/PocketCode/<Proyecto>-debug.apk. En las otras compilaciones el nombre acaba en -release.apk o -release.aab.
  2. 2O toca Compartir… para mandarlo a otra app. En Android 9 no se puede guardar en Descargas desde esta pantalla: usa Compartir….
  3. 3Abre el fichero desde la app Archivos. La primera vez, Android te pide permiso para instalar apps de orígenes desconocidos. Permítelo e instala.
PocketCode no instala APKs. Lo instala Android, desde la app Archivos.

APK de release y AAB

Elige el tipo en la hoja Compilar la app. Las compilaciones de release necesitan una clave de release. Sin ella, la hoja dice: Todavía no tienes una clave de release. Crea una o importa la que ya uses. Compilar sigue desactivado hasta que añadas una.

OpciónPara qué sirve
APK de depuraciónPara probarla en tu móvil. Firmada con una clave de depuración.
APK de releaseOptimizada y firmada con tu propia clave, para repartirla fuera de Google Play.
Paquete de release (AAB)El formato que pide Google Play. No se puede instalar en un móvil.

Después de compilar

  • El APK de release se guarda como <Proyecto>-release.apk.
  • Con un AAB la hoja dice: Sube este archivo en Google Play Console. Un paquete no se puede instalar directamente en un móvil.
  • En un Galaxy S24, la compilación de release de la plantilla Compose tardó 44 s con R8 y el APK pesaba 1,2 MB.

Claves de release

Una clave de release firma tu app. Para gestionar claves, toca Compilar APK, elige APK de release o Paquete de release (AAB) y toca Gestionar claves en el recuadro Clave de firma. Ahí puedes crear, importar, exportar o eliminar claves.

Crear una clave

  • Elige Crear una clave. Genera una clave RSA de 2048 bits, válida 30 años, guardada cifrada en el móvil dentro del Android Keystore.
  • El alias por defecto es upload. La contraseña necesita 6 caracteres o más.
  • Google Play no acepta para una app nueva una clave que caduque antes del 23 de octubre de 2033. La app te avisa si la tuya caduca antes.

Importar una clave

  • Elige Importar una clave y escoge un fichero .p12 o .pfx. Solo sirve PKCS12, el formato por defecto de Android Studio y de keytool.
  • Un .jks antiguo hay que convertirlo antes: keytool -importkeystore.
  • Si la contraseña es incorrecta, verás Contraseña incorrecta.

Gestionar claves

AcciónQué hace
Exportar una copia…Guarda un .p12 estándar que se abre con keytool o Android Studio. Necesita la contraseña: usa Mostrar contraseña.
Mostrar contraseñaEnseña la contraseña de la clave.
EliminarQuita la clave tras pedirte confirmación: ¿Eliminar esta clave?
Guarda una copia de la clave y de su contraseña. Si las pierdes, nunca podrás actualizar tu app en Google Play. En otro móvil, o tras restaurar una copia, importa el .p12 otra vez.

Reducir el código con R8

R8 reduce y ofusca el código de una compilación de release. Solo funciona si el bloque release de app/build.gradle.kts tiene isMinifyEnabled = true. La hoja te lo recuerda.

  1. 1Abre app/build.gradle.kts y pon isMinifyEnabled = true dentro del bloque release.
  2. 2Compila un APK de release o un Paquete de release (AAB).
  3. 3Si R8 se ejecutó, el resultado dice: R8 ofuscó el código. Guarda app/build/outputs/mapping/release/mapping.txt.
  • Guarda mapping.txt. Play Console lo usa para leer los informes de fallos.
  • Las reglas de R8 que leen o escriben ficheros, como -printmapping o -include, se rechazan por seguridad.
  • Con Compose, R8 necesita memoria: hasta unos 335 MB en un Galaxy S24. En un móvil con poca memoria puede fallar.

Lo que aún no está soportado

Lo que la compilación en el móvil no hace hoy.

  • Los ficheros .java todavía no se compilan. Salen como Todavía no se admite en el móvil, con el fichero y la línea.Aún no
  • El build.gradle de Groovy no está soportado. Usa build.gradle.kts.​Aún no
  • Lo que la compilación no entiende sale como Todavía no se admite en el móvil. Los ajustes que no cambian el resultado salen como Ajuste ignorado.​Aún no
  • R8 puede quedarse sin memoria en móviles con poca RAM, sobre todo con Compose.Dispositivo
  • Las reglas de R8 que leen o escriben ficheros se rechazan.A propósito
  • PocketCode no instala el APK. Lo abres desde la app Archivos.A propósito
  • Las herramientas de compilación vienen de Google Play, así que la app tiene que estar instalada desde Google Play.Google Play
  • La primera compilación necesita conexión para descargar las herramientas y las librerías.Requiere red

Limpiar la caché de compilación

La compilación guarda librerías y ficheros compilados en el móvil para que las siguientes vayan más rápido. Para liberar ese espacio:

  1. 1Abre Ajustes.
  2. 2Toca Limpiar caché de compilación: Libera las librerías y los archivos compilados que se guardan para compilar apps Android.
  3. 3La siguiente compilación vuelve a descargar las librerías.

Solución de problemas

Los problemas habituales y qué hacer.

No se pudieron descargar las herramientas de compilación de Google Play: no hay conexión. Vuelve a intentarlo cuando tengas internet.

Las herramientas pesan unos 119 MB y vienen de Google Play la primera vez. Conéctate a internet y vuelve a compilar. Con datos móviles, toca Continuar la descarga si Google Play te pide permiso.

No hay espacio libre suficiente para las herramientas de compilación.

Libera espacio en el móvil y vuelve a compilar. Si la caché de compilación es grande, Limpiar caché de compilación en Ajustes la libera.

Google Play no puede entregar las herramientas de compilación a esta copia de PocketCode. Hace falta la app instalada desde Google Play.

Las herramientas solo llegan a través de Google Play. Instala PocketCode desde Google Play, no desde un fichero, y vuelve a compilar.

Google Play no pudo instalar las herramientas de compilación.

Vuelve a intentarlo en un rato. Si sigue fallando, comprueba que Google Play esté al día y que haya espacio libre para instalar.

Todavía no se admite en el móvil

La compilación encontró algo que aún no sabe hacer, con el fichero y la línea. Lo más habitual son los ficheros .java y el build.gradle de Groovy. Pasa el código a Kotlin y usa build.gradle.kts.

Contraseña incorrecta.

La contraseña del fichero .p12 o .pfx que importas no es la correcta. Prueba otra vez con la contraseña que pusiste al crear la clave.

Mi clave .jks no se importa

Solo se puede importar PKCS12 (.p12 o .pfx). Convierte el fichero antiguo en un ordenador con keytool -importkeystore e importa el resultado.

El botón Compilar está desactivado

Elegiste una compilación de release y todavía no hay clave de release. Crea una o importa la que ya usas.

R8 falla en un móvil con poca memoria

R8 con Compose necesita memoria, hasta unos 335 MB en un Galaxy S24. Cierra otras apps y prueba otra vez. En un móvil con poca memoria aún puede fallar. Un APK de depuración, o un release con isMinifyEnabled = false, no usa R8.

No puedo guardar en Descargas

En Android 9 no se puede guardar en Descargas desde la pantalla del resultado. Usa Compartir….

El APK no se instala

PocketCode no lo instala. Abre el fichero desde la app Archivos y permite instalar de orígenes desconocidos cuando Android lo pida. Un AAB no se puede instalar en un móvil.

Al móvil se le acaba el espacio

Usa Limpiar caché de compilación en Ajustes. La siguiente compilación vuelve a descargar las librerías.