Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Android Emulator が DNS_PROBE_FINISHED_BAD_CONFIG でインターネットに接続できない場合の対処方法

こんにちは。エクセルソフトの田淵です。

いつからか Android Emulator がインターネットに接続できなくなっていました。

f:id:ytabuchi:20210217112143p:plain:w300

DNS_PROBE_FINISHED_BAD_CONFIG と出ています。

stackoverflow.com

stackoverflow では2つ解決方法が提示されていました。

  • コンピューターの DNS 設定を変更する
  • CLI で DNS サーバーの設定を付与して Emulator を起動する

CLI の場合は、Android SDK ディレクトリ以下の emulator ディレクトリ内で以下のコマンドで実行できます。

./emulator -avd <AVD Name> -dns-server <serverList>

Windows で Xamarin を Visual Studio と共に利用している場合は、デフォルトでは C:\Program Files (x86)\Android\android-sdk\emulator\emulator.exe です。

ただ、マシンの DNS 設定を変更するのも都度 CLI で起動するのも大変なので、Visual Studio で開発をする場合は、次の方法が使えます。

Windows の場合

Visual Studio 2019 の「ツール>オプション」の「Xamarin>Android 設定」で「追加のエミューレーター起動引数」に -dns-server 8.8.8.8,8.8.4.4 を追加します。(8.8.8.8,8.8.4.4 は Google の DNS で任意の DNS で OK です。)

f:id:ytabuchi:20210217113343p:plain:w750

保存してデバッグ実行すると、以下のログが表示され DNS Server の設定を付けて起動してくれていることが分かります。

エミュレーター pixel_3_q_10_0_-_api_29 を起動しています...
C:\Program Files (x86)\Android\android-sdk\emulator\emulator.EXE -no-boot-anim -dns-server 8.8.8.8,8.8.4.4 -avd pixel_3_q_10_0_-_api_29 -prop monodroid.avdname=pixel_3_q_10_0_-_api_29

Mac の場合

Visual Studio for Mac の「ユーザー設定」の「プロジェクト>Android」で「追加のエミューレーター起動引数」に -dns-server 8.8.8.8,8.8.4.4 を追加します。(プロジェクトの設定なので、何もプロジェクトを読み込んでいない状態で設定しないと開いているプロジェクトのみに適用されるかも。)

f:id:ytabuchi:20210217121051p:plain:w750

無事、接続できるようになりました。

以上です。

公式サイト:

developer.android.com

エクセルソフト | ダウンロード | 学習用リソース | JXUG リンクページ | ブログ購読