Android Studio の AVDManager で作った Virtual Device がすぐに落ちる → Windows アカウントのせいでした


はじめに

Android 開発について勉強してみようと思って、Windows 10 に Android Studio をインストールしたのですが、使い始めた途端にハマってしまったので、記事にしておきます。
※ こんなハマり方する人はほとんどいないと思いますが。

環境

今回のエラーは、バージョンあんまり関係ないと思いますが念のため。

  • Windows 10 Pro
  • Android Studio 4.0
    • Build #AI-193.6911.18.40.6514223, built on May 21, 2020
    • Runtime version: 1.8.0_242-release-1644-b01 amd64
    • VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

Android Virtual Device Manager の実行エラー

1. Android Studio 4.0 を普通にインストール

  エラーも特になく、インストール完了。

2. Android Studio でプロジェクトを新規作成

  エラーなく、普通にひな形プロジェクトができる。

3. AVD Manager を起動し、Virtual Device を作成

  • device definition : Nexus 6P を選択
  • System Image : MarshMallow (API Level 23) を選択
  • あとはデフォルトで Finish

という感じで、普通に Virtual Device を作って、再生ボタンで実行したのですが、次のエラーメッセージが出て、即落ちしてしまいました。

"The emulator process for AVD Nexus_6P_API_23 was killed"

実行した途端にプロセス殺されましたって・・・

調査

エラー内容もログも分からないので、とりあえず Virtual Device 作成の設定を色々変えてみましたが、すべて即落ち。ネットで調べてみると、「Intel x86 Emulator Accelerator(HAXM) を再インストールしたら」とか「OSのグラフィックドライバを最新に」とか「Oracle Virtual Boxのプロセスが云々」とか色々情報が上がっていたので、SDK Manager から HAXM の再インストール、グラフィックドライバの更新、Oracle Virtual Box のプロセスを探して全てKill してみたりしてみたのですが、全て変化無し。

エラーの内容も分からず、ログがどこに出てるのかも分からず途方に暮れていたところ、ネットで似たような質問をしている人の中に、コマンドプロンプトから emulator.exe を実行するやり方をしている人がいたので、これならエラーが表示されるかも、と思ってやってみると、(※コマンドプロンプトなのでパスの接続文字は¥マークです。)

C:\Java\Android_SDK\tools\emulator.exe -netdelay none -netspeed full -avd Nexus_6P_API_23
emulator: ERROR: bad config: virtual device file lacks a path entry
emulator: could not find virtual device named 'Nexus_6P_API_23'

ん?パスが欠けてる?virtual device が見つからない?SDKのパスもちゃんと通してるのになんで?

作成した virtual device 関連のファイルは、Windows のユーザーフォルダにありました。
%USERPROFILE%\.android\avd\Nexus_6P_API_23\
%USERPROFILE%\.android\avd\Nexus_6P_API_23.ini

iniファイルがあったので、それを開いてみると。

Nexus_6P_API_23.ini
avd.ini.encoding=UTF-8
path=C:\Users\縺セ繧構.android\avd\Nexus_6P_API_23.avd
path.rel=avd\Nexus_6P_API_23.avd
target=android-23

うぁぁぁぁ、こいつのせいかぁぁあぁあっっっ!!!

原因

Windows ユーザーのユーザーフォルダパスに2バイト文字が含まれているのが原因でした。Windows 10 は、ユーザー名を日本語で作ることができ、そうするとユーザーフォルダも日本語で作られてしまいます。

iniファイル自体は UTF-8 の文字コードになっていて、さっき文字化けしていたiniファイルも UTF-8 で開き直すと、正しく表示されます。おそらく Virtual Device の実行過程のどこかでちゃんと読み込めなかったんでしょう。

解決方法

別の英字ユーザーを作って、そちらで実行したところ、すんなりと Virtual Device の実行ができました。

・・・どっと疲れた・・・

いいわけ

いつもはユーザー名は普通に記号以外のASCII文字しか使わないんですが、導入しようとしていたパソコンはプライベート用に数年前に買ったものでして。初期セットアップしてたら、あれ?ユーザー名日本語使えるんだ~、じゃあ日本語名にしちゃお、別にこのパソコンで何か仕事するつもりもないし、と軽く考えてしまいました。

最近の Windows 10 の初期セットアップでは、ユーザー名に日本語を入れようとすると「アプリでトラブルあるかもよ」的な警告が出たような気がします。ネットで 「Windows ユーザー 日本語」で検索すると、「ユーザー名に日本語使うなよー」という記事がわんさか出てきます。

なら・・・そもそも日本語名でユーザー作れないようにしてくれよ・・・Microsoftさん・・・

と心の底から思います。