
Tengo el SDK de Android instalado en Windows y exporté su ruta a la ANDROID_SDK_ROOT
variable de entorno WSL. ¿WSL debería poder compilar mis proyectos utilizando el SDK instalado en Windows? Dice que mi SDK está dañado cuando intento construir mi proyecto Cordova. Podria ser esta la causa? Desinstalé/reinstalé la misma versión del SDK y algunas otras, pero el problema persiste.
Respuesta1
Mientras que Ubuntu en WSL puedeejecutarcasi cualquier binario de Windows, tenga en cuenta que los binarios de Windows aún no entenderánlinuxrutas, procesos, variables de entorno y algunos otros elementos/archivos de configuración que proporciona Ubuntu. Por este motivo, normalmente recomiendo que ejecute herramientas de programación de Windows, como el SDK de Android desde Windows. Si quieres usar ellinuxversión del SDK de Android, puede hacerlo desde Ubuntu en WSL.
Por ejemplo, mencionas que exportaste ANDROID_SDK_ROOT
, pero un proceso de Windows iniciado desde Ubuntu/WSL no verá esolinuxVariable ambiental.
Puedes solucionar este problema utilizando elWSLENV
variablecaracterística de WSL (originalAnuncio del devblog con más detalles.).
Eso significa, para elventanasversión del SDK de Android para ver ANDROID_SDK_ROOT
, debe agregar ese nombre de variable a la WSLENV
variable.
Por ejemplo:
export ANDROID_SDK_ROOT='C:\path\to\SDK\`
export WSLENV="$WSLENV:ANDROID_SDK_ROOT`
Si bien esto podría resolverpartedel problema, tenga en cuenta que debe utilizar elventanasformato de ruta anterior en lugar de la ruta WSL/Linux ( /mnt/c/path/...
). Esto se debe a que está ejecutando unventanasproceso.
Estos asuntospodríaen teoría, todo se puede solucionar con cosas como wslpath
, WSLENV
y otras características, pero nuevamente, para herramientas como esta, normalmente recomendaría:
- Usando la versión de Windows de la cadena de herramientas (editor, línea de comandos, SDK, herramientas, etc.)
- O usar versiones totalmente Linux de la cadena de herramientas.
Mezcle y combine solo en (a) casos simples o (b) si sabe cómo solucionar y solucionar cualquier problema que surja.
Respuesta2
WSL puede ejecutar programas de Windows, pero se ejecutarán como procesos normales de Windows. No estoy familiarizado con el programa que estás intentando ejecutar, pero ten en cuenta que equivale a ejecutarlo en Windows.
Puede asegurarse de que su interoperabilidad funcione llamando notepad.exe
desde Linux y viendo el inicio del bloc de notas. Si esto funciona, entonces su problema es específico de la aplicación que está ejecutando.
Parece poco probable que funcione compilar en un sistema operativo con las herramientas de otro sistema operativo; no estoy lo suficientemente familiarizado con el SDK de Android como para comentar más.