Android Studio - 无法找到请求目标的有效认证路径
Posted
技术标签:
【中文标题】Android Studio - 无法找到请求目标的有效认证路径【英文标题】:Android Studio - Unable to find valid certification path to requested target 【发布时间】:2014-12-29 02:21:50 【问题描述】:我收到了这个错误
Gradle 'project_name' project refresh failed: Unable to find valid certification path to requested target
当我在 android Studio 0.8.14 Mac OSX 上创建新项目时
Build.gradle 文件好像变空了
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript
repositories
jcenter()
dependencies
classpath 'com.android.tools.build:gradle:0.13.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
allprojects
repositories
jcenter()
而且我不能运行项目,看来我必须手动配置所有内容。
这里是idea.log http://pastebin.com/kyhfrBp9
【问题讨论】:
我会说你的 build.gradle 文件不是那么空。这是父 build.gradle,它没有定义任何公共属性。您的模块文件 (build.gradle) 将包含项目中编译单元的各个条目。你能告诉我build.gradle的内容吗(模块:...) 什么时候出现这个错误?建造 ?打开一个项目? .它阻止你继续吗?你能发送那个项目文件吗 您好,我已经解决了这个问题,确保应用程序级别构建 gradle 依赖项示例classpath 'com.android.tools.build:gradle:2.3.3'
应该与 CordovaLib Dir 构建 gradle 依赖项 classpath 'com.android.tools.build:gradle:2.3.3'
匹配另外,检查 repositories jcenter()
收件人 repositories maven url "http://jcenter.bintray.com"
重启一次
【参考方案1】:
这件事发生在我身上,原来是因为 Charles Proxy。
Charles Proxy是一个HTTP调试代理服务器应用程序
解决方案(仅当您安装了 Charles Proxy 时):
-
关闭 Charles Proxy;
重启 Android Studio。
【讨论】:
哇。谢谢。我不会猜到的。 我们如何关闭 CharlesProxy? @AndroGeek 这是一个普通的代理应用程序,只需关闭它就可以了。如果您不知道,那可能不是您的问题的原因。或者您可以检查您是否使用了任何其他可能会干扰您的 IDE 网络活动的代理。 如果能详细了解 Charles Proxy 是什么以及它会造成什么麻烦,那就太好了。似乎它以某种方式阻止了 SSL 通信...... 这就像我第 107 次通过关闭 Charles 来解决一些奇怪的问题,谢谢【参考方案2】:“无法找到到所请求目标的有效认证路径”
如果您收到此消息,您可能在您公司的代理后面,该代理可能正在使用您公司的根 CA 证书签署所有请求证书,此证书仅在您的公司内部受信任,因此 Android Studio 无法验证任何证书使用您的公司证书签名为有效,因此,您需要告诉 Android Studio 信任您的公司证书,您可以通过将公司证书添加到 Android Studio 信任库来做到这一点。
(我在 macOS 上这样做,但在 Linux 或 Windows 上应该类似)
首先,您需要将您的公司根 CA 证书保存为文件:您可以向您的 IT 部门索取此证书,或自行下载,方法如下。打开浏览器并打开此网址,例如https://jcenter.bintray.com/ 或https://search.maven.org/,单击锁定 图标,然后单击显示证书在弹出窗口中,要将根证书保存为文件,请确保选择证书链的顶层(根证书)并将证书图像拖到磁盘驱动器上的文件夹/目录中。它应保存为文件,例如:my-root-ca-cert.cer,或 my-root-ca-cert.pem
其次,让我们将此证书添加到 Android Studio 接受的服务器证书中:在 Android Studio 上打开Preferences -> Tools -> Server Certificates
,
在Accepted certificates
框上单击加号图标(+
),搜索您之前保存的证书并单击Apply
和OK
在 Android Studio 中打开File -> Project Structure -> SDK Location -> JDK Location
复制JDK Location的路径,打开终端,把你的目录改成那个路径,例如,执行:
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
完成,您现在应该可以构建您的项目了。
【讨论】:
你拯救了我的一天!我只在我的 JDK HOME 上导入了证书,而不是在 Android Studio JRE 中 谢谢。这是添加证书的一组非常简洁的步骤。鉴于 Android Studio 具有诱人的“自动接受不受信任的证书”复选框,确实不需要它,但您仍然必须执行这些步骤。 这应该是一个答案。谢谢卡洛斯! @Keab42 第 3 步是必要的。第 2 步(或仅选中您提到的复选框)适用于 Android Studio,但不适用于 Gradle。第 3 步解决 Gradle 问题。 今天,使用 Android Studio Artic Fox | 2020.3.1 新安装的补丁 2,在我的情况下 /jre 文件夹不存在 ;) 将证书导入到信任库:./bin/keytool -importcert -file /path/to/your/certificate/my-root-ca -cert.cer -keystore lib/security/cacerts -storepass changeit -noprompt【参考方案3】:对我来说,问题是 android studio 无法与 'https://jcenter.bintray.com/'
将其更改为“http”为我解决了这个问题(虽然不建议这样做)。
在你的 build.gradle 文件中,更改
repositories
jcenter()
到
repositories
maven url "http://jcenter.bintray.com"
【讨论】:
这解决了我的问题。但现在我正在使用像 artifactory 这样的东西来管理我的 repos 请不要开启 SSL,因为这是有风险的。相反,导入丢失的证书,请参阅下面的评论:***.com/a/44147334/1532478 使用 gradle v2.2.2 和 android Studio 3.5.3,上述解决方案对我不起作用。 jcenter 不再通过 http 可用。只有https【参考方案4】:如果您在受限的工作场所工作,您可能会遇到这个问题
一些对我有用的东西的组合 基本上把 https 改成 http
来自https:
repositories
jcenter()
收件人:
repositories
maven url "http://jcenter.bintray.com"
在gradle-wrapper.properties
..
发件人:
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
收件人:
distributionUrl=http\://services.gradle.org/distributions/gradle-3.3-all.zip
然后
- (optional) File -> Invalidate Caches / Restart`
- Give a clean build.
验证:检查您的 Gradle 控制台。它应该开始通过 HTTP 从 jcenter 下载库。
【讨论】:
它为我工作 distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 请不要开启 SSL/https,这是有充分理由的。按照***.com/a/44147334/1532478中的说明安装 SSL 证书 @trapicki 我不确定 android studio 正在寻找哪个证书。我已经尝试了您提到的链接中的所有证书。仍然面临同样的问题。你能指出它正在寻找的一个证书吗? 我几乎已经导入了所有的 Digi cert 证书但没有任何帮助【参考方案5】:好的,可能我迟到了,但是从 3.0 升级到 3.0.1 后我遇到了这个问题。 这个问题是因为我在受限网络中工作。
对我有用的解决方案如下:
解决方案
第 1 步:获取证书
jcenter()
等于 https://bintray.com/bintray/jcenter
您需要将 jcenter 的证书导入您的 java 密钥库。
使用浏览器访问 jcenter 并将证书导出为 .cer 文件。 (Firefox 地址栏或 Chrome 开发者工具安全选项卡左侧的锁定图标。不过,Internet Explorer 和 Edge 不支持保存网站证书。)
第 2 步:导入证书
在 Android Studio 中,转到File -> Settings -> Tools -> Server Certificates
。
在接受证书下点击+
。选择导出的证书。
第 3 步:刷新密钥库 在 Android Studio 中,转到 File -> Invalidate Caches/Restart...
。从出现的消息框中选择Invalidate and Restart
。
【讨论】:
如何下载证书?我访问了 bintray 网站,然后? 使用浏览器访问 jcenter 并将证书导出为 .cer 文件。 (Firefox 地址栏左侧的锁定图标,或 Chrome 开发者工具安全选项卡) 不,我可以下载它并将 .cer 添加到接受的证书中..但是 android studio 显示相同的错误.. !! 请您的网络人保存您的 IP。允许访问所有 jcenter\Google Repositort URL。或者下载旧版本的 Android Studio,比如 3.0 没用 :( 我什至检查了“自动接受不受信任的证书”【参考方案6】:我在具有代理/防火墙/病毒扫描器组合的企业环境中,将公司自己的 SSL 根证书(自签名)添加到每个 SSL 连接的信任路径中,以调查 SSL 连接。这正是问题所在。如果您处于相同的情况,此解决方案可能会有所帮助:
-
在浏览器中打开https://jcenter.bintray.com(我更喜欢火狐)
单击带有符号的挂锁以检查认证的信任路径。如果树中的***/根证书是您公司签署的证书,请将其导出到您的硬盘。
为了安全起见,还可以安全导出介于两者之间的每个证书
使用密钥库资源管理器工具Keystore Exlorer 使用密码“changeit”打开路径 JDKPATH/jre/lib/security/cacerts 中的 Android Studio 信任库
从您公司的根证书开始将导出的证书导入到 trusstore,然后执行第 6 步。在大多数情况下,这可以解决问题。如果没有,请逐步导入其他证书。
保存信任库
使用“File -> Invalidate Caches/Restart”退出 Android Studio
【讨论】:
按照步骤操作,但仍然遇到相同的 SSL 错误。无法获取资源:'dl.google.com/dl/android/maven2/com/android/tools/build/gradle/…'。 如果您在 Android Studio 之外遇到此错误(例如使用 React Native CLI),那么您需要强制重启主机上正在运行的 Java 进程(例如通过 Windows 上的任务管理器)以获取证书更新 我还想提一下,在某些情况下,Gradle/React Native/Android Studio 可能全部使用单独的 JDK/JRE 密钥库 - 您需要更新 CA 证书缓存让每个人都能工作 第一次对我不起作用。保存密钥库时遇到一些异常。**KSE Explorer** 以管理员身份打开,并成功保存到密钥库并且工作正常。 第 4 步中的 JDKPATH 通常为 $JAVA_HOME。但除非另有设置,否则 Android Studio 使用来自“C:\Program Files\Android\Android Studio\jre”的嵌入式 JRE。我通过在文件 > 项目结构 > SDK 位置下将“JDK 位置”更改为 $JAVA_HOME 的值来解决此问题。【参考方案7】:虽然这个问题很老了,但很多人肯定都面临同样的问题,所以我想说明我是如何解决这个问题的。
问题是类路径'com.android.tools.build:gradle:0.13.2'
通过 build.gradle 中的上述行,您要求它查找特定版本的 gradle,但您的机器中不存在此版本。最好将上面的行更改为
classpath 'com.android.tools.build:gradle:+'
【讨论】:
在查看了所有其他答案之后,这是最终奏效的答案!谢谢【参考方案8】:jcenter() 等于https://bintray.com/bintray/jcenter
您需要将 jcenter 的证书导入您的 java 密钥库。
步骤:
-
使用浏览器访问 jcenter
并将证书导出为 .crt 文件。 (Firefox 左侧的锁定图标
地址栏或 Chrome 开发者工具安全标签)
下载
this 工具并运行它。
选择“打开现有的 KeyStore”按钮
打开JDKPATH/jre/lib/security/cacerts,密码是“changeit”
使用“导入可信证书”按钮导入 .crt 文件,然后保存并存在
如果你在代理后面,在 gradle.properties 中,除了设置
systemProp.http.proxyHost 和 systemProp.http.proxyPort
也设置
systemProp.https.proxyHost 和 systemProp.https.proxyPort
现在应该没问题了。
【讨论】:
除了 bintray 证书,我还必须为公司网络内部的 CA 证书执行此操作。 你能告诉过程你是如何导出bintray证书的吗? @SantanuSur:见下文答案:***.com/a/50603870/3412545 谢谢,这是正确的答案:使用自定义根证书更新密钥库以启用正确的 SSL 传输。【参考方案9】:对我来说,这是我的互联网,我在受限网络上工作
【讨论】:
您找到解决方案了吗? @阿里。如果我不能切换到打开怎么办。你有什么解决办法吗? 这是我的情况。我切换到移动网络【参考方案10】:对我来说似乎是一个错误。 我遇到了同样的问题,并通过在我的项目目录中手动启动 gradlew.bat 来解决它。
【讨论】:
【参考方案11】:我今天升级到 Android Studio 3.2 Beta 2 后遇到了这个问题。我已经为 OpenJDK 10.0.1 配置了我的 JDK,升级后它抛出了这个错误。我将JDK设置回使用嵌入式JDK,错误消失了。
我不知道为什么在升级到 Beta 2 之前它运行良好,但现在一切都很好。老实说,我想 Android 上不需要 OpenJDK 10。
【讨论】:
【参考方案12】:尝试更新您的 Android Studio,现在是 1.0.2 版
【讨论】:
【参考方案13】:在 build.gradle 文件中正确添加最新的 gradle 版本,在 gradle-wrapper.properties 文件中添加最新的 distributionUrl。 【android studio 最新gradle版本请参考https://developer.android.com/studio/releases/gradle-plugin.html】
确保网络连接正确[网络连接不应阻止在 android studio 中升级 gradle]。 gradle upgrade android studio 后会提示接受/拒绝证书,我们应该接受证书。
【讨论】:
【参考方案14】:转到右下角的 Gradle 控制台并打开它。在这里您将看到一些 https/https 调用,单击链接并在 Web 浏览器中打开它们,然后尝试干净构建它对我有用。
我认为这是因为工作室无法从点击中获得响应。
【讨论】:
正确。我的问题是我已连接到工作场所 ***,它正在尝试构建项目并为此尝试自动下载证书但无法连接。一旦我从 *** 断开连接,它就可以正常工作了。【参考方案15】:我得到它是因为我在代理后面。我在 gradle.properties 中设置了 http 但没有设置 https 代理。在这种情况下需要 Https:
systemProp.http.proxyHost=<host>
systemProp.http.proxyPort=<port>
systemProp.https.proxyHost=<host>
systemProp.https.proxyPort=<port>
另外,请查看 Android Studio 日志以了解可能出现错误的位置。
【讨论】:
【参考方案16】:在使用gradle 4.4
和plugin 3.1.2
升级到Android Studio 3.1.2
后,我遇到了类似的错误,然后尝试了几乎所有上述解决方案,一次又一次地产生相同的错误。
Invalidate Caches / Restart
终于帮了我一个忙:File
>Invalidate Caches / Restart...
>Invalidate and Restart
【讨论】:
【参考方案17】:我的公司让我们使用 FortiClient ***,导致出现此错误。
如果适用,请尝试断开与您的 *** 的连接,然后重试。
【讨论】:
需要***,所以这没有多大帮助【参考方案18】:如果仍有问题,请尝试删除“C:\Users\UserName\.AndroidStudio1.2”下名为“.AndroidStudio1.2”的目录
当然名称会根据你的版本而有所不同
这对我有用
【讨论】:
【参考方案19】:当您包含依赖项并且它没有像 mavenCentral() 或 jcenter() 等存储库引用来下载它时,通常会发生这种情况
我通常会确定这种依赖关系是将 gradle 设置为离线工作,Android Studio 将自动显示本地不可用的依赖关系,然后在其提供者 github 页面中查找依赖关系详细信息,例如从哪个存储库中选择和更新您的存储库并将其下沉。希望它会工作
【讨论】:
【参考方案20】:我遇到了同样的问题,这是因为 Cyberoam 阻止了我的以下 URL
原因:org.gradle.api.resources.ResourceException:无法从https://maven.fabric.io/public/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据。
【讨论】:
【参考方案21】:我更改(更新)了我的 gradle 版本并且它有效 表格
classpath 'com.android.tools.build:gradle:3.1.4'
收件人
classpath 'com.android.tools.build:gradle:3.3.0'
【讨论】:
【参考方案22】:检查系统中的 fiddler 之类的代理应用程序,如果它正在运行,请关闭该应用程序并重新启动您的 android studio
【讨论】:
【参考方案23】:由于这是由于您正在运行的网络配置错误造成的,因此只需将您的智能手机设置为使用 USB 网络共享共享其互联网连接并使用它来下载丢失的软件包。
【讨论】:
【参考方案24】:这是我对消息关键短语的解决方案:“无法找到有效的证书路径”和“PKIX 路径构建失败”。
当找不到 SSL 认证文件时会显示这些短语。
在浏览器中打开https://jcenter.bintray.com/ 并以cer 格式导出证书。
将证书放入 Android Studio 的 cert 文件夹中
your-home-directory/.AndroidStudio3.0/system/tasks/cacerts
然后一切顺利。
【讨论】:
以上是关于Android Studio - 无法找到请求目标的有效认证路径的主要内容,如果未能解决你的问题,请参考以下文章
React-Native Android 构建失败 - 无法找到请求目标的有效认证路径
未找到Android Studio NDK iostream文件,无法在CMakeList中启用neon
Visual Studio 核心错误无法在 macOS 中找到 Android Studio 可执行文件