18bdfc7bfd
Co-Authored-By: fn-orquestador <noreply@anthropic.com>
49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
---
|
|
id: 0076
|
|
title: gradle_run no detecta SDK en $HOME/android-sdk (donde lo deja install_android_sdk)
|
|
status: done
|
|
priority: medium
|
|
created: 2026-05-10
|
|
related_functions: [gradle_run_bash_infra, install_android_sdk_bash_infra]
|
|
---
|
|
|
|
## Sintoma
|
|
|
|
`gradle_run_bash_infra` resuelve `ANDROID_HOME` con default `$HOME/Android/Sdk`. Pero `install_android_sdk_bash_infra` instala en `$HOME/android-sdk` (lowercase, distinto path). Resultado: aunque el usuario tiene SDK Linux instalado via la funcion del propio registry, gradle_run no lo encuentra.
|
|
|
|
## Reproducir
|
|
|
|
```bash
|
|
./fn run install_android_sdk
|
|
ls $HOME/android-sdk/ # OK, contiene cmdline-tools, platforms, etc.
|
|
|
|
cd apps/<some_kt_app>
|
|
./fn run gradle_unit_test .
|
|
# falla porque ANDROID_HOME apunta a $HOME/Android/Sdk (no existe)
|
|
```
|
|
|
|
## Fix propuesto
|
|
|
|
En `bash/functions/infra/gradle_run.sh`, anadir orden de busqueda:
|
|
|
|
```bash
|
|
if [[ -z "${ANDROID_HOME:-}" ]]; then
|
|
for candidate in \
|
|
"$HOME/android-sdk" \
|
|
"$HOME/Android/Sdk" \
|
|
"${ANDROID_SDK_WIN:-/mnt/c/Users/$USER/AppData/Local/Android/Sdk}"
|
|
do
|
|
if [[ -d "$candidate" && -d "$candidate/platform-tools" ]]; then
|
|
ANDROID_HOME="$candidate"
|
|
break
|
|
fi
|
|
done
|
|
fi
|
|
```
|
|
|
|
Tambien aplica a `ANDROID_SDK_DIR` para alinear con la funcion install.
|
|
|
|
## Validacion
|
|
|
|
`unset ANDROID_HOME && bash bash/functions/infra/gradle_run.sh apps/counter_kt :app:tasks` debe corre OK con SDK en `$HOME/android-sdk`.
|