错误:原因:无法找到所请求目标的有效证书路径

时间:2017-02-23 12:22:44

标签: android android-studio

当我同步gradle时,我在android Studio 2.2.3中遇到以下错误。

错误:原因:无法找到所请求目标的有效证书路径

如何解决此问题

我正在添加我的Gradle文件

apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
    applicationId "com.sample.myapplication"
    minSdkVersion 16
    targetSdkVersion 22
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
} } dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:palette-v7:23.4.0'
testCompile 'junit:junit:4.12'
// FireBase
compile 'com.google.firebase:firebase-messaging:9.0.0'
}//Add this line
apply plugin: 'com.google.gms.google-services'

和项目级别Gradle文件

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
    classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
    mavenCentral()
    jcenter{ url "http://jcenter.bintray.com/" }
    maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

23 个答案:

答案 0 :(得分:30)

此问题可能是由于某些受限制的互联网连接... 如果要在某些受限制的网络上安装构建工具,则可能无法安装所需的证书...因此,请尝试更改网络连接.... 为我工作.....

答案 1 :(得分:29)

我通过添加“maven {url”http://jcenter.bintray.com“}”来解决同样的问题  项目级别Gradle文件

buildscript {
repositories {
    jcenter()
    maven { url "http://jcenter.bintray.com"}
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
    classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
    mavenCentral()
    jcenter{ url "http://jcenter.bintray.com/" }
    maven { url "https://jitpack.io" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}

答案 2 :(得分:7)

我之前遇到过Maven构建的这个问题。这是因为我在受限制的办公室网络中工作。您需要在密钥库中导入所需的证书。

按照以下问题的答案中的步骤进行操作 "unable to find valid certification path to requested target", but browser says it's OK

(对fienames / pathnames使用双引号)

注意:我现在无法找到解决问题的确切来源,如果我得到它,我会更新它

答案 3 :(得分:4)

我刚刚遇到了类似的问题,发现一系列步骤确实对我有所帮助。 当然,其中很少有将网络更改为更好的网络的方法。或者,如果您只有一个网络,则尝试重新连接到网络,然后简单地确认/重新启动您的android studio。 如果仍然显示错误,则需要在存储库中添加“行家”并将其指向链接,如下所示: maven {url“ http://jcenter.bintray.com”}

最后,转到  *文件    *设置      *构建,执行和部署        *等级         * Android Studio        --------并选中“启用Maven存储库”选项。

在那之后,只需清洁并重建您的APP,您就可以开始使用了。

答案 4 :(得分:2)

我在更新工作室和gradle之后错过了这个问题,在日志文件中提示我一些maven商店有证书问题。

我尝试重新启动statudio作为某人的建议,但是剂量工作; 有人说我们应该设置jre环境,但我不知道如何在Mac上设置它。 所以我尝试重新启动Mac。并开始工作室我发现了这个提示。enter image description here

所以问题浮出水面: 解: 第一步:重启电脑,android studio更新后有太多问题。 第二步:使用旧的gradle工具 OR 下载* pom和jar,放入正确的文件夹。

答案 5 :(得分:2)

在Tools-> Android-> SDK Manager->工具 - >服务器证书

中导入公司证书

答案 6 :(得分:2)

我遇到了同样的问题。我通过删除/评论gradle.properties中的代理设置来修复它。检查你的gradle.properties,如果你有这样的

systemProp.https.proxyPort=8080
systemProp.http.proxyHost=192.168.1.1
systemProp.https.proxyHost=192.168.1.1
systemProp.http.proxyPort=8080

用#评论。这将是这样的

#systemProp.https.proxyPort=8080
#systemProp.http.proxyHost=192.168.1.1
#systemProp.https.proxyHost=192.168.1.1
#systemProp.http.proxyPort=8080

答案 7 :(得分:1)

您使用的是旧版本的库。

compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:palette-v7:25.2.0'
compile 'com.google.firebase:firebase-messaging:10.2.0'

答案 8 :(得分:1)

像菜鸟一样!

我为此感到恶梦,忘记了我最近安装了新的AV(Kaspersky)

因此,另一种解决方案是:禁用AV或向AV防火墙或代理添加排除项

希望它可以节省一些时间。

答案 9 :(得分:1)

这对我来说很有效:

buildscript {
    repositories {
        maven { url "http://jcenter.bintray.com"}
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
...
}

allprojects {
    repositories {
        mavenCentral()
        jcenter{ url "http://jcenter.bintray.com/" }
        maven {
            url 'https://maven.google.com/'
            name 'Google'
        }
    }
}

答案 10 :(得分:1)

“无法找到到所请求目标的有效认证路径”

如果收到此消息,则可能是在您公司的Proxy后面,该代理可能正在使用公司根CA证书对所有请求证书进行签名,因此该证书仅在公司内部受信任,因此Android Studio无法验证任何证书签名并带有有效的公司证书,因此,您需要告诉Android Studio信任您的公司证书,您可以通过将公司证书添加到Android Studio信任库中来做到这一点。

(我在macOS上执行此操作,但在Linux或Windows上应该与此类似)

  • 首先,您需要将公司的根CA证书另存为文件:您可以向您的IT部门索取该证书,或者自己下载它,方法如下。打开浏览器并打开此URL,例如https://jcenter.bintray.com/https://search.maven.org/,单击 锁定 图标,然后单击 < strong>显示证书

enter image description here

在弹出窗口中,要将根证书另存为文件,请确保选择证书链的顶层(根证书)并将证书映像拖到磁盘驱动器上的文件夹/目录中。它应另存为文件,例如: my-root-ca-cert.cer my-root-ca-cert.pem

enter image description here

  • 第二,让我们将此证书添加到Android Studio接受的服务器证书中:

在Android Studio上,打开Preferences -> Tools -> Server Certificates, 在框Accepted certificates上单击加号图标(+),搜索您之前保存的证书,然后单击ApplyOK

enter image description here

  • 第三,您需要将证书添加到Android Studio JDK信任库(Gradle使用此JDK来构建项目,因此很重要):

在Android Studio中打开File -> Project Structure -> SDK Location -> JDK Location

enter image description here

复制“ JDK位置”的路径,然后打开“终端”,然后将目录更改为该路径,例如,执行:

cd /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/

(请不要忘记将空白换成“ \”)

现在,要将证书导入到信任库,请执行:

./bin/keytool -importcert -file /path/to/your/certificate/my-root-ca-cert.cer -keystore ./jre/lib/security/cacerts -storepass changeit -noprompt
  • 最后,重新启动Android Studio,或者最好单击File -> Invalidate Caches / Restart

完成,您现在应该可以构建您的项目。

答案 11 :(得分:0)

那些尝试了上述所有答案但没有帮助的人,或者懒得遵循这些步骤的人,应该先尝试这个快速设置。

  • 转到 Android Studio -> 外观和行为 -> 系统设置 -> HTTP 代理 -> 选择自动检测代理设置

  • 转到 Android Studio -> 文件 -> 将项目与 Gradle 文件同步

enter image description here

答案 12 :(得分:0)

我遇到了同样的问题,我通过更改防火墙设置解决了这个问题,或者您可以切换到另一个网络

背后的原因

当我们运行我们的项目时,运行命令它的配置并检查退出的包,然后继续下载新的或所需的包,这些包存储在非安全 IP/主机上,因此您的防火墙将尝试保护您和您会得到这些错误

答案 13 :(得分:0)

打开同一项目后,在Android Studio终端中运行bellow命令。它对我有用。

在Windows上:

gradlew cleanBuildCache

在Mac或Linux上:

./gradlew cleanBuildCache

答案 14 :(得分:0)

简单的无效/重新启动为我修复了它。没有采取其他行动

答案 15 :(得分:0)

如果您在具有SSL拦截功能的公司代理后面运行,则需要按照以下步骤信任HTTPS的代理证书:

  • 在Android Studio中,打开文件->设置
    • 在“工具”->“服务器证书”中
      • 勾选“自动接受不受信任的证书”
      • 也单击“ +”并手动添加公司代理根证书。
    • 外观和行为->系统设置-> HTTP代理
      • 设置公司代理URL和端口详细信息
  • 下载KeyStore Explorer:http://keystore-explorer.org/downloads.html
  • 在KeyStore Explorer(以管理员身份运行)中,打开Android Studio JRE证书存储:C:\ Program Files \ Android \ Android \ Android Studio \ jre \ jre \ lib \ security \ cacerts
    • 密码应为“ changeit”
    • 导入公司代理根证书并保存。
  • 在Android Studio中,选择“文件”->“使缓存无效并重新启动”

答案 16 :(得分:0)

如果未在项目级别添加maven {url“ http://jcenter.bintray.com”},则此问题与网络连接有关。

只需尝试更改您的网络并同步gradle,就可以确定解决此问题。

答案 17 :(得分:0)

切换到智能手机网络并禁用计算机上安装的网络安全工具即可解决此问题。

答案 18 :(得分:0)

  1. 如果您使用kotlin 并且显示此错误,请在项目级别build.gradle中更新您的kotlin gradle插件。

  2. 证书已过期的情况:转到设置中的证书,检查是否有证书已过期(如果有),删除该证书并清理并同步它。

  3. 依赖项-无法找到大小写:在这种情况下,请删除该依赖项并同步项目,然后再次将依赖项添加到另一个版本(降级的版本)中,然后同步该项目即可使用

我遇到的这三个案例浪费了很多时间,希望这对某人有帮助并节省了某人的一天。

谢谢-编码愉快**:-)**

答案 19 :(得分:0)

如果您在办公室,请使用智能手机网络。我认为它将起作用。

答案 20 :(得分:0)

大多数时候我遇到这个问题。我将https替换为http。它解决了这个问题。

答案 21 :(得分:0)

在build.gradle文件中将依赖关系从编译更改为实现

答案 22 :(得分:0)

尝试通过命令提示符构建相同的项目,如果下载依赖项成功发生,请转到IntelliJ中的设置并将gradle映射到系统中的point gradle,并且构建应该正常。