【问题标题】:Gradle build error in Android Studio 3.0Android Studio 3.0 中的 Gradle 构建错误
【发布时间】:2018-04-10 22:36:27
【问题描述】:

您能帮我解决 Android 3.0 中的 Gradle 构建问题吗?

我是 Android Studio 的新手。 这是我在 AS 3.0 中的配置:

gradle->wrapper->gradle-wrapper.properties:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip

build.gradle 依赖项(Android Plugin for Gradle):

dependencies {classpath 'com.android.tools.build:gradle:3.0.0'}

来自 Android Studio 的堆栈跟踪:

D:\AppiumAutomation\MobileTest>gradlew assemble --stacktrace

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'MobileTest'.
> Could not resolve all files for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:3.0.0.
     Required by:
         project :
      > Could not resolve com.android.tools.build:gradle:3.0.0.
         > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification pat
h to requested target
      > Could not resolve com.android.tools.build:gradle:3.0.0.
         > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
            > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.0.0/gradle-3.0.0.pom'.
               > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification pat
h to requested target

【问题讨论】:

  • 您是否在使用代理?如果不是,你应该是吗?
  • 嗨 cricket_007:不,我不在代理后面。
  • 嗯,错误与网络有关。它无法为那些https 站点获取 SSL 证书
  • 我正在尝试的工作站位于公司网络下,并且正在通过 VPN 远程工作('mstsc' - 远程桌面连接)。这有什么区别吗?

标签: android android-studio gradle android-studio-3.0


【解决方案1】:

这是与 Android Studio 3.0 和公司网络相关的问题。我遇到了同样的问题。

Error:Could not resolve all files for configuration ':app:debugAndroidTestRuntimeClasspath'.
    > Could not resolve com.android.support.test:runner:1.0.1.
      Required by:
          project :app
       > Could not resolve com.android.support.test:runner:1.0.1.
          > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/test/runner/1.0.1/runner-1.0.1.pom'.
             > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/test/runner/1.0.1/runner-1.0.1.pom'.
                > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    > Could not resolve com.android.support.test.espresso:espresso-core:3.0.1.
      Required by:
          project :app
       > Could not resolve com.android.support.test.espresso:espresso-core:3.0.1.
          > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom'.
             > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom'.
                > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

我给你 2 个解决方案:

第一: 您必须手动将证书添加到您的 java 安全证书(由 Android 使用):

C:\Program Files\Android\Android Studio\jre\jre\lib\security\cacerts

解决方案 01(对我不起作用):

转到:

C:\Program Files\Android\Android Studio\jre\jre\bin

下载您需要的证书(只需复制有问题的 URL 并将其粘贴到<remote_host_name>):

keytool -J-Dhttps.proxyHost=<proxy_hostname> -J-Dhttps.proxyPort=<proxy_port> -printcert -rfc -sslserver <remote_host_name:remote_ssl_port> > <name.cer>

Example:
C:\Program Files\Android\Android Studio\jre\jre\bin>keytool -J-Dhttps.proxyHost= proxy.mycompany.com -J-Dhttps.proxyPort=80 -printcert -rfc -sslserver https://dl.google.com/dl/android/maven2/com/android/support/test/runner/1.0.1/runner-1.0.1.pom > maven2.cer

然后运行命令:

keytool -import -noprompt -trustcacerts -keystore ..\lib\security\cacerts -importcert -alias <AliasName> -file <name.cer> -storepass <cacertsPassword>

如果您从未更改过 cacerts 的密码,则默认密码为changeit

Example:
C:\Program Files\Android\Android Studio\jre\jre\bin>keytool -import -noprompt -trustcacerts -keystore ..\lib\security\cacerts -importcert -alias Maven -file maven2.cer -storepass changeit

解决方案 02(为我工作):

下载输入到 URL 站点的 pom 并将其存储在本地 repo 中:

Ex:
If your missing resoruce is:
https://dl.google.com/dl/android/maven2/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom

Download it and put it in:
C:/Program Files/Android/Android Studio/gradle/m2repository/com/android/support/test/espresso/espresso-core/3.0.1/espresso-core-3.0.1.pom

【讨论】:

  • 尝试解决方案 2,但之后出现新错误错误:无法解决:play-services-places 打开文件
  • 可以确认,截至 2019 年 12 月,这仍然是一个问题,但是,选项 1 确实有效。
【解决方案2】:

我解决了相同的问题,我组建了 android studio 并安装了 3.0,但问题没有解决 所以为了解决这个问题,我做了以下事情 1.去查看和种子哪些文件被改变了。 2.更新插件和platform.te后文件可能会发生变化 3.因此您需要恢复由于插件更新而发生的所有文件更改。

4.现在您必须注意哪些文件已更改并转到每个文件的本地历史记录并还原假设 gradle 文件更改的更改,因此您需要右键单击该文件并转到本地历史记录,然后选择显示历史记录

您将看到两个文件,一个用于最近的更改,另一个将显示所有最近更改的文件 所以你需要根据时间,日期正确选择你改变的文件

在上图中,您可以在左上角看到它们是一个还原选项,如果您单击所有更改都将被还原 所以单击该还原选项并保存更改

对由于 gradle 插件更新而更改的所有文件执行此操作 并同步您将解决问题的项目。

【讨论】:

    【解决方案3】:

    只需在您的项目级 gradle 文件中添加 google():

    buildscript {
        repositories {
            jcenter()
            google()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.1'
        }
    }
    

    【讨论】:

    • 你好 Rahul,它已经在那里了。问题不是您提到的[包括 google() 和 jcenter() ]。根本原因仍然未知!
    猜你喜欢
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 2013-05-13
    • 2015-02-06
    相关资源
    最近更新 更多