如何在Gradle build

时间:2017-11-16 07:28:26

标签: java android maven

我安装了最新版本的android studio。我有已安装的jdk 8。当我打开android studio时,我得到了以下错误。

Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:26.1.0.

Could not resolve com.android.support:appcompat-v7:26.1.0.
Required by:
    project :app
 > Could not resolve com.android.support:appcompat-v7:26.1.0.
    > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.1.0/appcompat-v7-26.1.0.pom'.
          > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.1.0/appcompat-v7-26.1.0.pom'.
                   > sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
                               > PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
                                              > unable to find valid certification path to requested target  

所以我删除了JDK 8并安装了JDK 9,添加了环境变量(在windows 10中)。然后我重新启动我的系统并启动android studio,我仍然遇到上述错误。我甚至添加了

repositories {
    maven { url "https://maven.google.com" }
}  

到gradle脚本。但我仍然得到同样的错误。我该如何解决这个错误?

6 个答案:

答案 0 :(得分:4)

以下步骤可能有所帮助:

<强> 1。将证书添加到密钥库 -

从Android Studio的cacerts中将一些认证导入Android Studio JDK cacerts。

Android Studio的cacerts可能位于

{your-home-directory}/.AndroidStudio3.0/system/tasks/cacerts

我使用了以下导入命令。

$ keytool -importkeystore -v -srckeystore {src cacerts} -destkeystore {dest cacerts}

<强> 2。将修改后的cacert路径添加到gradle.properties -

systemProp.javax.net.ssl.trustStore={your-android-studio-directory}\\jre\\jre\\lib\\security\\cacerts
systemProp.javax.net.ssl.trustStorePassword=changeit

参考:https://www.cresco.co.jp/blog/entry/2014/ /

答案 1 :(得分:0)

根据以下项目级别gradle进行修改

idEncoder

然后,从app level gradle中删除appcompat-v7:26.1.0依赖项,然后再删除 转到Android Studio文件&gt;项目结构&gt; app&gt;依赖关系&gt;点击+&gt;图书馆依赖性&gt;根据您的要求添加依赖性,然后确定。

您也可以尝试使用gradle文件点击同步项目

synchronize with gradle file

如需了解更多信息,请访问以下链接

https://developer.android.com/studio/build/gradle-plugin-3-0-0.html

<强>被修改

我认为您的问题有所不同,请点击以下链接,

"PKIX path building failed" and "unable to find valid certification path to requested target"

Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?

https://github.com/appscode-ci/cibox/issues/16

https://www.mkyong.com/webservices/jax-ws/suncertpathbuilderexception-unable-to-find-valid-certification-path-to-requested-target/

答案 2 :(得分:0)

您的Java不信任您用于下载库的链接。 在继续执行步骤2之前,请尝试步骤1。

  1. 检查您的Internet是否在任何防火墙之后,您的公司Internet可能正在阻止您尝试访问的网站。将您的PC连接到移动互联网并尝试构建。

  2. 将证书手动添加到您的jdk证书字符串中。

    • 访问网站,例如https://example.com
    • 从浏览器下载证书。
    • 找到您的jdk安装目录。
    • 使用以下命令将证书手动添加到cacerts
    • sudo keytool -import -alias shibbolethnet -keystore
      /Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/jre/lib/security/cacerts -file <downloadedcert.cer>

答案 3 :(得分:0)

您可以尝试通过Eclipse> Preferences> Gradle更改Gradle包装器的路径。选择本地安装目录,而不是Gradle Wrapper。

答案 4 :(得分:0)

我为 plugins.gradle.org 安装了密钥并能够下载以下内容,https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-gradle-plugin/2.4.1/

但是,无法下载我的浏览器可以下载的 https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-gradle-plugin/2.4.1/spring-boot-gradle-plugin-2.4.1.module

折腾了一天才发现,url被重定向了,spring-boot-gradle-plugin-2.4.1.modulehttps://jcenter.bintray.com/org/springframework/boot/spring-boot-gradle-plugin/2.4.1/spring-boot-gradle-plugin-2.4.1.module

jcenter.bintray.com 添加到我的密钥库并且它起作用了。扭曲的世界。

答案 5 :(得分:-1)

尝试替换为

repositories {
    maven { url 'http://repo1.maven.org/maven2' }
}