📖
The Gradle daemon may be trying to use ipv4 instead of ipv6
現象
AndroidStudioでAndroidアプリを開いたところ、以下エラーによりGradleの同期ができなくなりました。
Broken pipe.
The Gradle daemon may be trying to use ipv4 instead of ipv6.
解決策
ESETがIPv6をブロックしており同期が失敗していたので、GradleがIPv4のみを使うようにAndroidStudioを設定する
方法
-
ホーム画面の左下の歯車⚙️をクリックし、「Edit Custom VM Options」を開く
-
「-Djava.net.preferIPv4Stack=true」を追記する
-
AndroidStudioを再起動
これで解消しました🚀
原因
- Gradleの同期には外部ネットワークへの接続が必要であり、セキュリティソフト(今回の場合は
ESET
)がIPv6通信をブロックしていた。 - 通信が失敗し、「Broken pipe」エラーが発生
- Gradleデーモンがネットワークに接続できず、同期処理が止まっていた
その他の対応策
今回はESETの設定を変えずに、AndroidStudioの設定でIPv4のみ使うよう変更しましたが、以下の方法も有効かと思われます。
- ESETのファイアウォールでIPv6を許可する
Discussion