2018/01/25
Android Emulator が黒画面でフリーズ
久しぶりに Android の Emulator を起動したら起動はするものの、黒い画面のままフリーズし、そのうち落ちてしまうようになってしまいました。
コマンドラインから起動
エラーメッセージ等を見るには最も手っ取り早い方法なので、以下のようにコマンドラインから起動してみました。
ちなみに、avd
のリストを表示するには -list-avds
を使います1。
% android-sdk/tools/emulator -list-avds Nexus_6P_API_24 % android-sdk/tools/emulator -avd Nexus_6P_API_24 emulator: ERROR: detected a hanging thread 'QEMU2 main loop' . No response for 15000 ms zsh: segmentation fault (core dumped) ./emulator -avd Nexus_6P_API_24 |
どうも QEMU2 が無限ループに入っているとのこと。
IPv6 の設定を確認
ググッてみると、Stack Overflow に回答が。
参考
[Android Studio emulator: ERROR: detected a hanging thread QEMU2 main loop - Stack Overflow](https://stackoverflow.com/questions/47956847/android-studio-emulator-error-detected-a-hanging-thread-qemu2-main-loop/47963547#47963547)
IPv6 が無効になっていると、この現象が起こるとのこと。
確認してみると、確かに IPv6 が無効になってる。
% cat /proc/sys/net/ipv6/conf/all/disable_ipv6 1 |
IPv6 を有効にする
Stack Overflow にはコメントアウトすれば良いと書いてありましたが、私の場合は 0
と明示的に指定する必要がありました。
/etc/sysctl.conf
を以下のように修正。
1 2 3 | net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 |
反映させます。
% sudo sysctl -p net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0 |
この状態でエミュレータを起動したところ、無事に立ち上がりました。
0 件のコメント:
コメントを投稿