WSL2 は Windows にインストールされた Android SDK を使用できますか?

WSL2 は Windows にインストールされた Android SDK を使用できますか?

Windows に android-sdk をインストールし、そのパスをANDROID_SDK_ROOTWSL 環境変数にエクスポートしました。WSL は、Windows にインストールされている SDK を使用してプロジェクトをコンパイルできるはずですか? Cordova プロジェクトをビルドしようとすると、SDK が破損していると表示されます。これが原因でしょうか? 同じバージョンの SDK と他のいくつかの SDK をアンインストール/再インストールしましたが、問題は解決しません。

答え1

WSL上のUbuntuでは実行するほとんどすべてのWindowsバイナリでは、Windowsバイナリはまだ理解できないことに注意してくださいリナックスUbuntuが提供するパス、プロセス、環境変数、その他の設定項目/ファイル。このため、私は通常、Android SDKなどのWindowsプログラミングツールをWindowsから実行することをお勧めします。リナックスAndroid SDK のバージョンによっては、WSL 上の Ubuntu から実行できます。

たとえば、エクスポートしたと書かれていますがANDROID_SDK_ROOT、Ubuntu/WSL内から起動したWindowsプロセスではそれが認識されません。リナックス環境変数。

これを修正するには、WSLENV変数WSLの機能(オリジナルより詳しい情報を含む開発ブログの発表)。

つまり、ウィンドウズAndroid SDK のバージョンを確認するにはANDROID_SDK_ROOT、その変数名を変数に追加する必要がありますWSLENV

例えば:

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

これは解決するかもしれないが一部問題によっては、ウィンドウズ上記のパス形式はWSL/Linuxパス(/mnt/c/path/...)の代わりに使用されます。これは、ウィンドウズプロセス。

これらの問題できた理論的には、、、その他の機能などですべて回避できますwslpathWSLENV、繰り返しになりますが、このようなツールの場合、通常は次のことをお勧めします。

  • Windows バージョンのツールチェーン (エディター、コマンドライン、SDK、ツールなど) を使用する
  • または、ツールチェーンの Linux バージョンをすべて使用します。

(a) 単純なケース、または (b) 発生した問題をトラブルシューティングして解決する方法がわかっている場合にのみ、これらを組み合わせて使用​​してください。

答え2

WSL は Windows プログラムを実行できますが、通常の Windows プロセスとして実行されます。実行しようとしているプログラムについてはよくわかりませんが、Windows で実行するのと同じであることに注意してください。

Linux から呼び出してメモ帳が起動するのを確認することで、相互運用性が機能していることを確認できますnotepad.exe。これが機能する場合、問題は実行しているアプリケーションに固有のものです。

ある OS で別の OS のツールを使用してコンパイルすることはおそらく機能しないと思われます。Android の SDK に十分精通していないため、これ以上コメントすることはできません。

関連情報