PC パソコン

Android Studio Gradle「Could not GET」の原因と解決方法

Android StudioでGradle Syncやプロジェクトのビルドを実行したときに、
「Could not GET」
というエラーが表示されることがあります。

このエラーは、Gradleがライブラリやプラグインなどを取得するためにリポジトリへアクセスしたものの、
HTTPまたはHTTPS通信に失敗したときに発生します。
主な原因としては、インターネット接続、プロキシ、VPN、ファイアウォール、SSL証明書、リポジトリ側の障害などが考えられます。

この記事では、Android StudioのGradleで「Could not GET」と表示される主な原因と解決方法を解説します。

「Could not GET」とは

「Could not GET」は、Gradleが指定されたURLへGETリクエストを送信したものの、
必要なファイルを正常に取得できなかったことを示すエラーです。

例えば、次のようなエラーが表示されることがあります。

Could not GET 'https://repo.maven.apache.org/maven2/...'

この場合、Gradleは表示されているURLへ接続してライブラリなどを取得しようとしましたが、
通信に失敗したことを意味します。

「Could not GET」は、
Could not resolve all files for configuration

Could not resolve
などのエラーと一緒に表示されることがあります。

主な原因

Gradleで「Could not GET」が発生する主な原因には、次のようなものがあります。

  • インターネットに接続できていない
  • ネットワーク接続が不安定になっている
  • リポジトリへ接続できない
  • プロキシ設定が正しくない
  • VPNによって通信が制限されている
  • ファイアウォールやセキュリティソフトによって通信が遮断されている
  • SSL証明書に問題がある
  • JDK側の証明書設定に問題がある
  • アクセス先のリポジトリに障害が発生している
  • 古いURLや利用できないリポジトリを使用している

ポイント:
「Could not GET」だけでなく、その直後に表示される
Connection timed out
Connection refused
PKIX path building failed
などの詳細なエラーを確認することが重要です。

エラーメッセージの詳細を確認する

まず、BuildウィンドウやGradle Syncに表示されているエラーを最後まで確認します。

例えば、次のようなエラーが表示されることがあります。

Could not GET 'https://repo.maven.apache.org/maven2/...'

Connect timed out

この場合は、Gradleがリポジトリへ接続しようとしたものの、
一定時間内に接続できなかったことが分かります。

また、次のようなエラーが表示される場合もあります。

Could not GET 'https://...'

Connection refused

この場合は、接続先サーバーやネットワーク側で接続が拒否されている可能性があります。

インターネット接続を確認する

Gradleは、必要なライブラリやプラグインを外部リポジトリから取得します。

インターネットへ接続できていない場合は、リポジトリへアクセスできないため、
Could not GET
が発生します。

ブラウザなどを使用して、インターネットへ正常に接続できるか確認します。

Wi-Fiなどの接続が不安定な場合は、ネットワークへ接続し直してからGradle Syncを実行します。

アクセス先のURLを確認する

「Could not GET」の後ろには、GradleがアクセスできなかったURLが表示されます。

Could not GET 'https://example.com/maven/...'

このURLを確認することで、どのリポジトリへの接続に失敗しているのかを判断できます。

特定のMaven Repositoryだけで発生している場合は、そのリポジトリの設定や稼働状況を確認します。

repositoriesの設定を確認する

Gradleが不要なリポジトリや古いリポジトリへアクセスしている場合、
そのリポジトリへの接続失敗によってエラーが発生することがあります。

Androidプロジェクトでは、一般的にGoogle Maven RepositoryとMaven Centralが使用されます。

repositories {
    google()
    mavenCentral()
}

現在のGradleプロジェクトでは、
settings.gradle
または
settings.gradle.kts

dependencyResolutionManagement
内にリポジトリを設定している場合があります。

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

    repositories {
        google()
        mavenCentral()
    }
}

不要になったリポジトリや、現在利用できないリポジトリが設定されていないか確認します。

プロキシ設定を確認する

会社や学校などのネットワークでは、外部インターネットへ接続するためにプロキシサーバーが必要な場合があります。

Android StudioやGradleのプロキシ設定が正しくない場合、
リポジトリへ接続できず
Could not GET
が発生することがあります。

Android Studioのプロキシ設定を確認し、使用しているネットワーク環境に合った設定になっているか確認します。

gradle.propertiesのプロキシ設定を確認する

Gradleでは、
gradle.properties
にプロキシを設定している場合があります。

systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080
systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080

以前使用していたプロキシ設定が残っている場合、
現在のネットワークでは接続できないことがあります。

プロキシを使用していない環境では、不要な設定が残っていないか確認します。

VPNを確認する

VPNを使用している場合、VPN側の通信制限や経路によってGradleの接続に失敗することがあります。

通常のWebサイトには接続できても、
Maven CentralやGoogle Maven Repositoryなどへの接続だけが正常に行えない場合があります。

VPNを使用している場合は、VPN接続の有無によってエラーの状態が変わるか確認します。

ファイアウォールやセキュリティソフトを確認する

ファイアウォールやセキュリティソフトによって、JavaやGradleの通信が遮断されている場合があります。

ブラウザでは正常にWebサイトへ接続できても、Javaプロセスからの外部通信だけが制限されている可能性があります。

別のネットワーク環境では正常にGradle Syncできる場合、
現在使用しているネットワークやセキュリティ設定が原因である可能性があります。

GradleのOffline modeを確認する

GradleのOffline modeが有効になっている場合、
基本的にはネットワークを使用せず、ローカルキャッシュから依存関係を解決します。

必要な依存関係がキャッシュに存在しない場合は、正常にビルドできません。

Android StudioのGradle設定を確認し、
Offline modeが有効になっている場合は無効にしてからGradle Syncを実行します。

Gradle Syncを再実行する

一時的なネットワーク障害やリポジトリ側の応答遅延が原因の場合は、
Gradle Syncを再実行するだけで解決することがあります。

Android Studioから
Sync Project with Gradle Files
などを実行します。

一度だけ発生したエラーで、その後正常に同期できる場合は、
一時的な通信障害だった可能性があります。

Gradleの依存関係を再取得する

キャッシュや取得状態に問題がある場合は、
依存関係を再取得すると改善することがあります。

プロジェクトのTerminalから、次のように実行します。

./gradlew build --refresh-dependencies

Windowsでは、環境によって次のように実行します。

gradlew.bat build --refresh-dependencies

これにより、依存関係が再確認され、必要なファイルの取得が再試行されます。

SSL証明書関連のエラーを確認する

HTTPSでリポジトリへ接続するときにSSL証明書を正常に検証できない場合も、
Could not GET
が表示されることがあります。

例えば、次のようなエラーが一緒に表示される場合があります。

PKIX path building failed

SSLHandshakeException

この場合は、JDKの証明書、ネットワーク環境、プロキシ、セキュリティソフトなどを確認します。

企業や学校などのネットワークでは、HTTPS通信を中継する仕組みによって、
Java側で証明書を正常に検証できない場合があります。

JDKの設定を確認する

GradleはJava上で動作するため、使用しているJDKの設定が通信に影響することがあります。

特にSSL証明書に関するエラーが表示されている場合は、
Android Studioで使用しているGradle JDKを確認します。

プロジェクトやAndroid Gradle Pluginに対応したJDKが選択されているか確認します。

リポジトリ側の障害を確認する

自分の環境に問題がなくても、アクセス先のリポジトリ側で一時的な障害が発生している場合があります。

その場合は、特定のリポジトリだけ接続できなかったり、
一定時間後に再度Gradle Syncすると正常に取得できたりすることがあります。

複数のネットワーク環境でも同じURLへの接続だけが失敗する場合は、
リポジトリ側の問題である可能性も考えられます。

古いリポジトリURLを使用していないか確認する

古いAndroidプロジェクトや古いサンプルコードでは、
現在は利用できないリポジトリURLが設定されている場合があります。

以前は利用できたURLでも、リポジトリの移転やサービス終了によってアクセスできなくなることがあります。

使用しているライブラリの現在の公式ドキュメントを確認し、
最新の配布先リポジトリが設定されているか確認します。

特定のリポジトリだけ失敗する場合

Google Maven RepositoryやMaven Centralには接続できるものの、
独自のMaven Repositoryだけで
Could not GET
が発生する場合があります。

この場合は、そのリポジトリのURL、サービス状況、認証の必要性などを確認します。

使用していないリポジトリであれば、設定から削除できる場合もあります。

認証が必要なリポジトリを確認する

一部のMaven Repositoryでは、アクセスするためにユーザー名やパスワードなどの認証情報が必要な場合があります。

認証情報が設定されていない場合や、認証情報が無効になっている場合は、
Gradleがファイルを取得できません。

使用しているリポジトリの公式ドキュメントを確認し、
認証設定が必要かどうかを確認します。

HTTPステータスコードを確認する

「Could not GET」と一緒にHTTPステータスコードが表示される場合があります。

ステータスコード 主な意味
401 認証が必要、または認証情報に問題がある
403 アクセスが拒否されている
404 指定されたURLにファイルが存在しない
500 リポジトリ側の内部エラー
502・503・504 サーバーや通信経路の一時的な問題

ステータスコードが表示されている場合は、その内容からネットワークの問題なのか、
認証やリポジトリ側の問題なのかを判断しやすくなります。

エラー別の確認ポイント

「Could not GET」と一緒に表示されるエラーによって、確認すべき場所をある程度絞り込むことができます。

表示されるエラー 主な確認ポイント
Connection timed out ネットワーク、プロキシ、ファイアウォール
Connection refused 接続先サーバー、ネットワーク設定
Unknown host DNS、ネットワーク、URL
PKIX path building failed SSL証明書、JDK、プロキシ
401 Unauthorized 認証情報
403 Forbidden アクセス権限、認証、リポジトリ設定
404 Not Found URL、ライブラリ、バージョン

解決しない場合の確認手順

原因が分からない場合は、次の順番で確認すると問題を切り分けやすくなります。

  1. 「Could not GET」の後ろに表示されているURLを確認する
  2. その直後に表示される詳細なエラーを確認する
  3. インターネット接続を確認する
  4. Gradle Syncを再実行する
  5. GradleのOffline modeを確認する
  6. repositoriesの設定を確認する
  7. 古いリポジトリURLが残っていないか確認する
  8. プロキシ設定を確認する
  9. gradle.propertiesのプロキシ設定を確認する
  10. VPNやファイアウォールを確認する
  11. SSL証明書やJDKの設定を確認する
  12. HTTPステータスコードが表示されている場合はその内容を確認する
  13. リポジトリ側で障害が発生していないか確認する

重要:
「Could not GET」は、Gradleがアクセス先へ通信を行ったものの、
ファイルの取得に失敗したことを示すエラーです。
まずはアクセスできなかったURLと、その直後に表示される詳細な通信エラーを確認することが重要です。

まとめ

Android Studio Gradleの
「Could not GET」
は、Gradleがライブラリやプラグインなどを取得するためにリポジトリへアクセスしたものの、
通信に失敗した場合に表示されるエラーです。

インターネット接続だけでなく、プロキシ、VPN、ファイアウォール、
SSL証明書、JDK、リポジトリURL、リポジトリ側の障害などが原因になる場合があります。

まずは
Could not GET
の後ろに表示されているURLと、
Connection timed out
Connection refused
PKIX path building failed
などの詳細なエラーを確認し、通信経路のどこで問題が発生しているのかを絞り込むと効率よく対処できます。