WindowsでAndroid CLIのSDK一覧を取得しようとしたとき、android sdk list --allが一覧を表示せず、終了コード0xC0000409で異常終了することがあります。本記事では、Android CLI 1.0.16261425で確認された既知不具合について、公式修正版への更新、更新できない場合の代替手段、修正確認の方法を説明します。
表示される代表的な症状
PS> android sdk list --all
Process exited with code 0xC0000409
利用しているターミナルや呼び出し元によっては、符号付き10進数の終了コードとして表示されたり、メッセージをほとんど残さずプロセスが終了したりします。重要な識別点は、Windows上のAndroid CLI 1.0.16261425でsdk list --allを実行したときに発生することです。
原因
GoogleのAndroid Studio Rabbit 2修正一覧では、Issue #558351427として「Android CLI 1.0.16261425 on Windows: sdk list –all exits with 0xC0000409」が明記されています。つまり、プロジェクトのGradle設定やAndroid SDKのライセンス同意ではなく、該当するAndroid CLI版のWindows固有不具合です。
0xC0000409はWindowsで異常終了を示すステータスとして使われますが、このIssueの内部原因は公開されている公式情報だけでは特定できません。そのため、「必ずメモリ破損が原因」「ウイルス対策ソフトが原因」などと断定するのは適切ではありません。
対象バージョン:公式Issue名で明示されている問題版はAndroid CLI 1.0.16261425です。修正はAndroid Studio Rabbit 2 Canary 2の修正一覧に掲載されています。同リリースはAGP 9.5.0-alpha07と同時提供ですが、この問題はAndroid CLI側のため、AGPだけを変更しても解決にはなりません。
発生条件
- OSがWindowsである
- Android CLI 1.0.16261425を使用している
android sdk list --allで利用可能なSDKをすべて列挙しようとする- コマンドが正常な一覧を返さず、
0xC0000409で終了する
推奨する解決手順
- 現在のバージョンを確認する:
android -Vを実行し、1.0.16261425かどうかを確認します。 - Android CLIを更新する:公式ドキュメントが案内する
android updateを実行します。 - ターミナルを開き直す:更新後、PATH上の古い実行ファイルを使い続けないようPowerShellまたはコマンドプロンプトを再起動します。
- 実行ファイルと版を再確認する:
where.exe androidとandroid -Vで、想定したAndroid CLIが呼び出されていることを確認します。 - 同じコマンドを再実行する:
android sdk list --allがSDK一覧を表示して終了コード0で完了するか確認します。
android -V
android update
where.exe android
android -V
android sdk list --all
更新しても古い版が起動する場合
Windowsでは複数のandroidコマンドがPATHに登録されていると、更新した場所とは別の古い実行ファイルが優先されることがあります。where.exe androidで複数のパスが表示された場合は、各パスとバージョンを確認し、意図したAndroid CLIが先に解決されるようユーザー環境変数のPATHを整理します。
Android Studioに同梱されるツール、単独で導入したAndroid CLI、別のパッケージ管理ツールによるインストールを混同しないようにしてください。削除する前に、どのパスが実際に使われているかを必ず確認します。
代替策
--allが不要なら、暫定的にandroid sdk listで通常の一覧を取得する。- Android StudioのSDK Managerを使って、インストール可能なSDK PlatformやSDK Toolsを確認する。
- 組織の方針でCanary版を導入できない場合は、修正済みAndroid CLIが利用可能になるまで、正常に動作していた版を別環境で使用する。
- CIでは問題版を固定せず、検証済みの修正版を明示的に固定する。
これらは作業を継続するための代替策です。公式に確認された根本対応は、修正を含むAndroid CLIへ更新することです。
確認方法
PowerShellでは、コマンド実行直後に$LASTEXITCODEを確認できます。
android sdk list --all
$LASTEXITCODE
修正後はSDK一覧が最後まで表示され、$LASTEXITCODEが0になることを確認します。さらにandroid -Vの出力を記録し、問題版1.0.16261425が呼び出されていないことを確かめます。
注意点
Android SDKの破損を疑ってSDK全体を削除する前に、Android CLIのバージョンを確認してください。この既知問題はCLIプロセスの異常終了であり、SDK Platformやプロジェクトを再インストールしても、問題版CLIを使い続ける限り再発する可能性があります。
また、Rabbit 2 Canary 2はプレビュー版です。安定版を必須とする環境では、現在のAndroid Studioを上書きせず、別ディレクトリで検証するか、修正を含む安定版の提供を待ってください。公式に確認されていないレジストリ変更やDLL差し替えは推奨しません。
まとめ
WindowsでAndroid CLI 1.0.16261425のandroid sdk list --allが0xC0000409で終了する現象は、Googleが認識している既知不具合です。まずandroid -Vとwhere.exe androidで実体を確認し、android updateで修正版へ更新します。更新できない場合は通常のsdk listまたはAndroid StudioのSDK Managerを一時的に利用してください。
