質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

5172閲覧

プロジェクトのbuild.gradleにcom.google.gms:google-services:3.0.0を加えるとBuildできない

gittib_gittib

総合スコア102

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/07/24 10:14

###前提・実現したいこと
最近 Android Studio をアップデートしたのですが、それ以来プロジェクトのbuild.gradle に google-services を加えると
org.gradle.tooling.BuildException が発生してビルドができません。そのエラーを解消し、ビルドできるようにしたいです。

###発生している問題・エラーメッセージ
https://jcenter.bintray.comへのSSL通信に失敗しているようです。
スタックトレースをそのまま載せてしまうと400行以上になるので、1行目及び「Caused by:」で始まる行のみを以下に示します。

org.gradle.tooling.BuildException: Could not run build action using Gradle distribution 'https://services.gradle.org/distributions/gradle-3.3-all.zip'. Caused by: org.gradle.internal.exceptions.LocationAwareException: A problem occurred configuring root project 'MyApplication'. Caused by: org.gradle.api.ProjectConfigurationException: A problem occurred configuring root project 'MyApplication'. Caused by: org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':classpath'. Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve com.google.gms:google-services:3.0.0. Caused by: org.gradle.internal.resolve.ModuleVersionResolveException: Could not resolve com.google.gms:google-services:3.0.0. Caused by: org.gradle.api.resources.ResourceException: Could not get resource 'https://jcenter.bintray.com/com/google/gms/google-services/3.0.0/google-services-3.0.0.pom'. Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not HEAD 'https://jcenter.bintray.com/com/google/gms/google-services/3.0.0/google-services-3.0.0.pom'. Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

###該当のソースコード
エラーの原因と思われる、プロジェクトのbuild.gradleを以下に示します。
com.google.gms:google-services:3.0.0を追加しているだけです。

Gradle

1buildscript { 2 repositories { 3 jcenter() 4 } 5 dependencies { 6 classpath 'com.android.tools.build:gradle:2.3.3' 7 classpath 'com.google.gms:google-services:3.0.0' 8 9 // NOTE: Do not place your application dependencies here; they belong 10 // in the individual module build.gradle files 11 } 12} 13 14allprojects { 15 repositories { 16 jcenter() 17 } 18} 19 20task clean(type: Delete) { 21 delete rootProject.buildDir 22}

###試したこと
一応、jcenterにhttpsでなくhttpでつなぐと正常にビルド~アプリ実行までできました。
その時のbuild.gradleを以下に示します。

Gradle

1buildscript { 2 repositories { 3 jcenter { 4 url "http://jcenter.bintray.com" 5 } 6 } 7 dependencies { 8 classpath 'com.android.tools.build:gradle:2.3.3' 9 classpath 'com.google.gms:google-services:3.0.0' 10 11 // NOTE: Do not place your application dependencies here; they belong 12 // in the individual module build.gradle files 13 } 14} 15 16allprojects { 17 repositories { 18 jcenter { 19 url "http://jcenter.bintray.com" 20 } 21 } 22} 23 24task clean(type: Delete) { 25 delete rootProject.buildDir 26}

ただ、今までSSLで繋いでいたところを、いたずらにhttpで繋ぐのはいかがなものかと思うので、jcenterのurlをいじらずに繋ぎたいと思っています。

###補足情報(言語/FW/ツール等のバージョンなど)
「classpath 'com.google.gms:google-services:3.0.0'」の記述を削除してもビルドは通りました。
ただ、要件的にgoogle-servicesは必須なのでエラーなく読み込みたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahodana

2017/07/24 10:25

そのバージョンは公開されてるのか?
gittib_gittib

2017/07/24 10:33

com.google.gms:google-services:3.0.0が公開されているか?という質問でしたら、公開されていると認識しています。以前にも https://firebase.google.com/docs/android/setup?hl=ja を参考に上記クラスパスを追加したプロジェクトを開発していて、その時はビルドできていました。Android Studioのアップデートが引き金になっていると睨んでいますが、確証はありません。
guest

回答1

0

自己解決

一旦、エラーは解消できたので、自己解決とさせていただきます。

原因は、Android Studio が指定するJDKがbintray.comの証明書を信頼していないためでした。
よって、以下のように対応しました。

  • 各種ブラウザでhttps://jcener.bintray.comが信頼された証明書で通信できることを確認した上で、当該サイトから証明書をダウンロード
  • Android Studio にて、メニューの「File」→「Project Structure...」を開き、「SDK Location」を確認
  • 「JDK location:」を確認し、必要に応じて使用するJDKを指定
  • keytool を使って %JDKlocation%\jre\lib\security\cacerts を確認し、ダウンロードした証明書をインポート

参考にしたサイト

とりあえずこれでビルドが通るようになりました。

投稿2017/07/25 10:40

gittib_gittib

総合スコア102

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問