1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-07-10

はじめに

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"
AVD_Errors.png

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

調査

エラー内容もログも分からないので、とりあえず 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さん・・・

と心の底から思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?