たかぎとねこの忘備録

プログラミングに関する忘備録を自分用に残しときます。マサカリ怖い。

ExpoアプリをAndroidエミュレーターで開こうとした時にjavax.net.ssl.SSLHandshakeExceptionが出た場合の対処法

AndroidエミュレーターでExpoアプリを開こうとした時に次のエラーが出た。

Uncaught Error: javax.net.ssl.SSLHandshakeException: Chain validation failed

この場合はAndroidエミュレーター上の時刻が現在の時刻と違うために起こる問題のようだ。

stackoverflow.com

しかし、そもそもエミュレーターがインターネットに接続されていない状態のため、自動で時刻が設定されていない問題も発生していた。

なので、Androidエミュレーターをインターネットに接続できるようにする。

Proxyを設定する

Androidエミュレーターの設定画面を開く。

Settingsをサイドメニューから選択して、Proxyタブを開く。

Use Android Studio HTTP proxy settingsにチェックを入れる。

Wi-Fiを設定する

設定アプリから、接続されているAndroid Wifiの設定ページにアクセスする。

この画面に表示されているIPアドレスゲートウェイの情報を控えておく。

右上の編集ボタンをタップして、IP設定をDHCPから静的に変更する。

先ほど控えていたIPアドレスゲートウェイの値を入力する。

そして、DNS1に8.8.8.8を入力し、DNS2に8.8.8.4を入力して保存する。

終わったら、❌ボタンをクリックしてエミュレーターを閉じる。このダイアログが表示されたOKをクリックしておく。

エミュレーターが閉じられたら、今度は対象のエミュレーターをCold Bootを使って起動する。

これでインターネットに接続が完了する。

そして、Expoのアプリも開けるようになった。