Android platform fails on Windows hosts
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- android, react-native, typescript
- Área
- devtools, mobile-dev, operating-systems
Línea de trabajo
Comienza en @react-native-harness/platform-android e inspecciona los helpers de rutas binarias, las llamadas al shell, la resolución de la raíz del SDK y el manejo de rutas de AVD descritos en el issue. Reproduce el problema con react-native-harness --harnessRunner android en un host Windows y verifica después que los dispositivos físicos y los emuladores existentes o recién creados funcionen sin requerir bash, mientras que los SDK faltantes sigan produciendo un error claro.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
The Android platform doesn't work when Harness runs on a Windows host. The first failure, reported in #183, is:
Android command-line tools are missing. Set ANDROID_HOME or ANDROID_SDK_ROOT to an initialized SDK.
It happens even when the SDK is installed correctly. @react-native-harness/platform-android assumes a POSIX host in several places:
- Binary paths have no extension. Harness checks for
platform-tools/adb,emulator/emulator,cmdline-tools/latest/bin/sdkmanagerandbin/avdmanager. On Windows these files areadb.exe,emulator.exe,sdkmanager.batandavdmanager.bat, so the existence checks fail. - Some steps shell out to
bash -lc. Accepting SDK licenses and installing packages (yes | sdkmanager …), creating an AVD (printf 'no\n' | avdmanager …), and writing AVD.inifiles (printf … > file) all do this. Windows has nobash. - AVD paths use
$HOME. The fallback whenANDROID_AVD_HOMEisn't set is${process.env.HOME}/.android/avd.HOMEusually isn't set on Windows. - There's no default SDK root on Windows. Harness only knows the macOS and Linux default locations, not
%LOCALAPPDATA%\Android\Sdk.
Harness runs commands through nano-spawn, which already resolves PATHEXT and runs .bat/.cmd files through cmd.exe. So this can be fixed with platform-neutral code plus a single Windows check in the binary path helpers, without adding platform conditionals throughout the package.
Expected behavior
Harness finds an Android SDK installed on Windows and can run tests on physical devices and existing or newly created emulators.
Out of scope
Automatically downloading the Android command-line tools on Windows. That keeps failing with a clear "set ANDROID_HOME" error.
React Native Harness Version
1.4.1 and later
Steps to reproduce
On Windows, with an Android SDK installed and ANDROID_HOME set, run react-native-harness --harnessRunner android against a connected device.
- Lenguaje dominante
- TypeScript
- Estrellas
- 333
- Forks
- 20
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de callstackincubator/react-native-harness
-
Android runner can't start on a Windows host: SDK binaries are looked up without .exe or .batAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Windows Android SDK path not foundPosiblemente ocupada @V3RON la tomó hace 34 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Ship prebuilt iOS XCTest agent artifacts and re-sign them locally instead of building per deviceAbiertoenhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Todos los issues de callstackincubator/react-native-harness
Issues similares
-
backend priority:P3 privacy-fix
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
[Bug]: 【优化】对话消息底部增加发送时间展示Abiertobug desktop v3 windows
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
esengine/DeepSeek-Reasonix#13697 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:security documentation effort:S priority:P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
app:web meta:ops
Dificultad 2/5 Medio día Aptitud para principiantes 78/100
osu-tournament-rating/otr#1113 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100