我有以下配置:
- MacOS 11.0.1(MacOS防火墙关闭)
- Android Studio 4.1.2
- Android Gradle插件版本4.1.1
- Gradle版本6.5
- Java jdk版本1.8.0_251
Gradle build开始在我的所有项目中报告错误,所以我猜它与特定的项目配置(build.gradle等)无关。
相同的项目正在Windows上的相同Android Studio、Gradle和JDK版本上正常构建和运行。
我已经尝试过的步骤,但没有帮助:
- 重建项目
- 使缓存无效/重新启动
- 重新安装Android Studio,按照完整卸载的说明进行操作(How to completely uninstall Android Studio on Mac?)
- 全新安装从https://developer.android.com/studio下载的Android Studio
- 使用JetBrains Toolbox进行全新安装
- 手动将证书(从浏览器下载)添加到Android Studio(首选项/工具/服务器证书)和Java密钥库
- 安装Android Studio 4.2 beta 5
- 安装较新版本的JDK(1.8.0_281)
错误详细信息:
- Gradle同步失败:原因:无法找到有效的证书路径到请求的目标 *
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'name-of-the-project'.
> Could not resolve all artifacts for configuration ':classpath'.
> Could not resolve com.android.tools.build:gradle:4.1.1.
Required by:
project :
> Could not resolve com.android.tools.build:gradle:4.1.1.
> Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.1/gradle-4.1.1.pom'.
> Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/4.1.1/gradle-4.1.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.google.gms:google-services:4.3.4.
Required by:
project :
> Could not resolve com.google.gms:google-services:4.3.4.
> Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.3.4/google-services-4.3.4.pom'.
> Could not GET 'https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.3.4/google-services-4.3.4.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.google.firebase:firebase-crashlytics-gradle:2.4.1.
Required by:
project :
> Could not resolve com.google.firebase:firebase-crashlytics-gradle:2.4.1.
> Could not get resource 'https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-crashlytics-gradle/2.4.1/firebase-crashlytics-gradle-2.4.1.pom'.
> Could not GET 'https://dl.google.com/dl/android/maven2/com/google/firebase/firebase-crashlytics-gradle/2.4.1/firebase-crashlytics-gradle-2.4.1.pom'.
> sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
这似乎是一个网络问题,但我试图使用不同的连接解决方案与不同的供应商,有和没有VPN。
所有提到的文件都是可访问的,我可以使用wget从终端下载它们
wget https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.3.4/google-services-4.3.4.pom
--2021-03-04 12:42:32-- https://dl.google.com/dl/android/maven2/com/google/gms/google-services/4.3.4/google-services-4.3.4.pom
Resolving dl.google.com (dl.google.com)... 216.58.214.206
Connecting to dl.google.com (dl.google.com)|216.58.214.206|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1576 (1,5K) [application/octet-stream]
Saving to: ‘google-services-4.3.4.pom.1’
google-services-4.3.4.pom.1 100%[=====================================================================================>] 1,54K --.-KB/s in 0s
2021-03-04 12:42:32 (11,3 MB/s) - ‘google-services-4.3.4.pom.1’ saved [1576/1576]
4条答案
按热度按时间h9a6wy2h1#
我已经被同一个bug卡住了好几天了,和你一样,我几乎什么都试过了。
最后我在Android Studio中注意到了一些东西,我去到Http代理首选项选项卡,我看到一条消息说
您将JVM属性“https.proxyHost”设置为“localhost”....
我尝试通过以下行来覆盖此值:
systemProp.https.proxyHost=
在我的项目gradle.properties文件和tadaaa!它的工作原理,我真的不明白发生了什么事虽然...
希望能有所帮助;)
pbpqsu0x2#
经过额外的研究......出于某种原因,MacOS网络代理设置被更改,这就是Android Studio发出警告的原因:
您将JVM属性“https.proxyHost”设置为“localhost”....
要解决此问题,请转到
系统首选项/网络/高级(针对您正在使用的网络)/代理
并取消选择Web代理和安全Web代理
ulmd4ohb3#
没有获得有效证书路径还有另一个可能的原因。您在gradle构建中使用的各种插件不一定使用包含证书的信任存储来验证有问题的证书的真实性。在我的情况下,我可以使用浏览器与给定的服务器进行通信而不会出现证书验证错误,但我不能使用“maven-publish”插件进行相同的操作。为什么?因为它们使用不同的信任存储进行证书验证。“maven-publish”使用java已配置使用的信任存储。默认位置位于目录$JAVA_HOME/jre/lib/security中。浏览器正在使用您的操作系统信任存储。可以使用系统属性更改java信任存储:
您可以使用以下格式在www.example.com文件中设置它们gradle.properties:
您也可以使用以下格式在build.gradle.kts脚本中设置它们:
j7dteeu84#
最初回答here
在我的情况下,安装在我的mac上的代理软件是罪魁祸首。
当我尝试在我的Macbook上构建项目时,我遇到了这个问题。我尝试了很多解决方案,但没有一个成功。最后看到IT团队安装了代理软件,并怀疑代理软件可能会阻止gradle下载依赖项。我与IT团队联系并卸载了代理,然后同步了项目,它终于工作了。