O WSL2 pode usar o Android SDK instalado no Windows?

O WSL2 pode usar o Android SDK instalado no Windows?

Tenho o Android-sdk instalado no Windows e exportei seu caminho para a ANDROID_SDK_ROOTvariável de ambiente WSL. O WSL deve ser capaz de compilar meus projetos usando o SDK instalado no Windows? Diz que meu SDK está corrompido quando tento construir meu projeto Cordova. Isso poderia ser a causa? Desinstalei/reinstalei a mesma versão do SDK e algumas outras, mas o problema permanece.

Responder1

Embora o Ubuntu no WSL possaexecutarquase todos os binários do Windows, lembre-se de que os binários do Windows ainda não entenderãoLinuxcaminhos, processos, variáveis ​​de ambiente e alguns outros itens/arquivos de configuração que o Ubuntu fornece. Por esse motivo, normalmente recomendo que você execute ferramentas de programação do Windows, como o Android SDK do Windows. Se você quiser usar oLinuxversão do Android SDK, você pode fazer isso no Ubuntu no WSL.

Por exemplo, você menciona que exportou ANDROID_SDK_ROOT, mas um processo do Windows iniciado de dentro do Ubuntu/WSL não verá issoLinuxvariável de ambiente.

Você pode corrigir isso usando oWSLENVvariávelrecurso do WSL (originalanúncio do devblog com mais detalhes).

Isso significa que, para ojanelasversão do Android SDK para ver ANDROID_SDK_ROOT, você precisa adicionar esse nome de variável à WSLENVvariável.

Por exemplo:

export ANDROID_SDK_ROOT='C:\path\to\SDK\`
export WSLENV="$WSLENV:ANDROID_SDK_ROOT`

Embora isso possa resolverpapeldo problema, observe que você deve usar ojanelasformato de caminho acima em vez do caminho WSL/Linux ( /mnt/c/path/...). Isso ocorre porque você está executando umjanelasprocesso.

Estas questõespoderiaem teoria, tudo pode ser resolvido com coisas como wslpath, WSLENVe outros recursos, mas, novamente, para ferramentas como essa, eu normalmente recomendaria:

  • Usando a versão Windows do conjunto de ferramentas (editor, linha de comando, SDK, ferramentas, etc.)
  • Ou usando versões totalmente Linux do conjunto de ferramentas.

Misture e combine apenas em (a) casos simples ou (b) se você souber como solucionar problemas que surgirem.

Responder2

WSL pode executar programas do Windows, mas eles serão executados como processos normais do Windows. Não estou familiarizado com o programa que você está tentando executar, mas saiba que é equivalente a executá-lo no Windows.

Você pode garantir que sua interoperabilidade funcione ligando notepad.exedo Linux e vendo o bloco de notas iniciar. Se funcionar, seu problema é específico do aplicativo que você está executando.

Parece improvável que compilar em um sistema operacional com as ferramentas de outro sistema operacional funcione. Não estou familiarizado o suficiente com o SDK do Android para comentar mais.

informação relacionada