HTTPSでのjcenterへの接続に失敗する

Android Studio を使用してアプリケーションを開発しているときに 以下のエラーが表示され jcenter に接続できないということがありました。

Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.2.3/gradle-1.2.3.pom'.
Could not HEAD 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.2.3/gradle-1.2.3.pom'.
peer not authenticated

どうやら極めて特殊なプロキシー環境下で HTTPS を使用して jcenter に接続しようとするとエラーになってしまうようです。

jcenter への接続を HTTPS から HTTP に変更すると解決します

既定の build.gradle は以下のようにリポジトリーとして jcenter() が記述されています。

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

この jcenter() という記述は HTTPS を使用して https://jcenter.bintray.com に接続を試みます。これを以下のような直接 URL 記述に変更することで HTTP 接続に変更することができます。

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter { url "http://jcenter.bintray.com" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
    }
}

allprojects {
    repositories {
        jcenter { url "http://jcenter.bintray.com" }
    }
}

jcenter への接続を HTTPS から HTTP に変更したところ問題が解決しました。

この記事を共有しませんか?