WSL2는 Windows에 설치된 Android SDK를 사용할 수 있나요?

WSL2는 Windows에 설치된 Android SDK를 사용할 수 있나요?

Windows에 android-sdk가 설치되어 있고 해당 경로를 ANDROID_SDK_ROOTWSL 환경 변수로 내보냈습니다. WSL은 Windows에 설치된 SDK를 사용하여 내 프로젝트를 컴파일할 수 있어야 합니까? Cordova 프로젝트를 빌드하려고 하면 SDK가 손상되었다는 메시지가 나타납니다. 이것이 원인일까요? 동일한 버전의 SDK와 다른 몇 가지 버전을 제거/재설치했지만 문제는 여전히 남아 있습니다.

답변1

WSL의 Ubuntu는실행하다대부분의 Windows 바이너리는 Windows 바이너리가 여전히 이를 이해하지 못한다는 점을 명심하십시오.리눅스Ubuntu가 제공하는 경로, 프로세스, 환경 변수 및 기타 구성 항목/파일. 이러한 이유로 저는 일반적으로 Windows에서 Android SDK와 같은 Windows 프로그래밍 도구를 실행하는 것을 권장합니다. 당신이리눅스Android SDK 버전이 있는 경우 WSL의 Ubuntu에서 해당 작업을 수행할 수 있습니다.

예를 들어 를 내보냈 ANDROID_SDK_ROOT지만 Ubuntu/WSL 내부에서 시작된 Windows 프로세스에서는 이를 볼 수 없다고 언급했습니다.리눅스환경 변수.

다음을 사용하여 이 문제를 해결할 수 있습니다.WSLENV변하기 쉬운WSL의 기능(원본자세한 내용은 devblog 발표).

즉,윈도우Android SDK 버전을 보려면 ANDROID_SDK_ROOT해당 변수 이름을 변수에 추가해야 합니다 WSLENV.

예를 들어:

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

이것이 해결될 수도 있지만부분문제의 경우 다음을 사용해야 합니다.윈도우/mnt/c/path/...WSL/Linux 경로( ) 대신 위의 경로 형식을 사용하세요 . 이는 귀하가 운영하고 있기 때문입니다.윈도우프로세스.

이러한 문제~할 수 있었다이론적으로는 , 및 기타 기능을 사용하여 모든 문제를 해결할 수 있지만 wslpath이와 WSLENV같은 도구의 경우 일반적으로 다음을 권장합니다.

  • Windows 버전의 툴체인(편집기, 명령줄, SDK, 도구 등) 사용
  • 또는 전체 Linux 버전의 툴체인을 사용합니다.

(a) 간단한 경우 또는 (b) 발생하는 문제를 해결하는 방법을 알고 있는 경우에만 혼합하여 일치시키십시오.

답변2

WSL은 Windows 프로그램을 실행할 수 있지만 일반 Windows 프로세스로 실행됩니다. 나는 당신이 실행하려는 프로그램에 대해 잘 모르지만 Windows에서 실행하는 것과 동일하다는 것을 알고 있습니다.

notepad.exeLinux에서 호출하고 메모장이 시작되는 것을 확인하여 상호 운용성이 작동하는지 확인할 수 있습니다 . 이것이 작동한다면 문제는 실행 중인 애플리케이션에만 국한된 것입니다.

한 OS에서 다른 OS의 도구를 사용하여 컴파일하는 것은 작동하지 않을 것 같습니다. Android SDK에 대해 더 이상 언급할 만큼 익숙하지 않습니다.

관련 정보