maven 如何解决Gradle构建中的存储库证书错误

x8diyxa7  于 2023-08-03  发布在  Maven
关注(0)|答案(8)|浏览(261)

我安装了最新版本的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脚本。但我还是犯了同样的错误。如何修复此错误?

643ylb08

643ylb081#

以下步骤可能有所帮助:

1.向密钥库添加证书-

将某些认证从Android Studio的cacerts导入Android Studio JDK cacerts。
Android Studio的cacerts可能位于

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

字符串
我使用了下面的import命令。

$ 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//

lnlaulya

lnlaulya2#

在项目级分级器中按以下内容修改

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

repositories {
    google()
    jcenter()
}

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

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
 }

allprojects {
     repositories {
      google()
      jcenter()
   }
 }

 task clean(type: Delete) {
  delete rootProject.buildDir
}

字符串
然后,从应用级别gradle中删除appcompat-v7:26.1.0依赖项,然后下一步转到Android Studio文件>项目结构>应用>依赖项>点击+ >库依赖项>添加依赖项,然后确定。
你也可以尝试点击同步项目与gradle文件
x1c 0d1x的数据
欲了解更多,请点击下方链接
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/

jei2mxaa

jei2mxaa3#

Java不信任用于下载库的链接。在继续步骤2之前,请尝试步骤1。
1.检查您的互联网是否在任何防火墙后面,您的公司互联网可能会阻止您试图访问的网站。将您的PC连接到移动的互联网并尝试构建。

  • 手动添加证书到您的jdk证书库。
  • 访问网站,例如https://example.com
  • 从浏览器下载证书。
  • 找到你的jdk安装目录。
  • 使用以下命令手动添加证书到cacerts,
  • 第一个月
hpcdzsge

hpcdzsge4#

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

6yoyoihd

6yoyoihd5#

我安装了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,我的浏览器能够下载。
花了一天的时间才发现,网址正在被重定向,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到我的密钥库,它工作了。扭曲的世界

bakd9h0s

bakd9h0s6#

TL;DR

有已知的JDK带有错误的HTTP客户端,在TLS v1.3期间(由许多服务器强制执行)失败,并伴有这种误导性异常。

将JDK更新为最新版本。

很长的故事

JDK版本可能是原因。随着时间的推移和互联网的发展,服务器开始缩小传输协议集的范围。有些可能只提供TLS v1.2和TLS v1.3。HTTP客户端(包括Java中的客户端)可能存在漏洞。
我的经验是,信任库和证书是可以的,但作为Java HTTP客户端从OpenJDK 11.0.0(从官方OpenJDK网站下载)在TLS v1.3中有一个bug,它总是以exception PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target结束。只是抛出了异常。不是真实的的问题。
解决方案是从我不得不使用的主要版本中获取最新的JDK。它在11.0.3中得到了修复,在撰写本文时,11.0.15已经可用。

jhkqcmku

jhkqcmku7#

我收到这个错误是因为一个带有依赖关系的新克隆的仓库在另一个仓库中成功使用,所以我知道这不是密钥证书问题。最终,我能够通过更改intelliJ中的gradle设置,转到Preferences ->Gradle -> Gradle JVM并将其设置为我想要使用的正确JDK来解决这个问题(我想要java 1.8,但它被设置为阿苏尔15)

w7t8yxp5

w7t8yxp58#

尝试替换为

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

字符串

相关问题