android - 如何在公司代理后面设置 gradle / wrapper?
问题描述
Windows 机器,Android 项目。该proxy
软件安装在机器上,几乎就像一个man-in-the-middle
破坏 SSL 证书链的软件。我们已经知道这一点,如果代理软件被禁用,一切都很好。我正在尝试使用Gradle 6.7.1! wrapper
我得到以下异常堆栈跟踪:
C:\work\ArchitectureComponentsAdvancedNavigation>gradlew build
Welcome to Gradle 6.7.1!
Here are the highlights of this release:
- File system watching is ready for production use
- Declare the version of Java your build requires
- Java 15 support
For more details see https://docs.gradle.org/6.7.1/release-notes.html
Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details
IOException: https://dl.google.com/android/repository/addons_list-3.xml
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
IOException: https://dl.google.com/android/repository/addons_list-2.xml
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
IOException: https://dl.google.com/android/repository/addons_list-1.xml
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Failed to download any source lists!
File C:\Users\lalalala\.android\repositories.cfg could not be loaded.
IO exception while downloading manifest:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alert.createSSLException(Unknown Source)
at sun.security.ssl.TransportContext.fatal(Unknown Source)
at sun.security.ssl.TransportContext.fatal(Unknown Source)
at sun.security.ssl.TransportContext.fatal(Unknown Source)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(Unknown Source)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(Unknown Source)
at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(Unknown Source)
at sun.security.ssl.SSLHandshake.consume(Unknown Source)
at sun.security.ssl.HandshakeContext.dispatch(Unknown Source)
..........................................................
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 26 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 32 more
Still waiting for package manifests to be fetched remotely.
我已经有了:
- 已配置 Android Studio 代理
gradle.properties
文件,配置了代理- URLS 在浏览器中打开得很好,我可以拾取工件并将它们放入项目的依赖项中
我该怎么做gradle daemon
才能信任我的代理证书?
解决方案
推荐阅读
- php - 在 Laravel 项目中上传视频
- pandas - Pandas,isin,列表列
- java - 根据 Collection.toArray(T[] array) 合同将 Java 流转换为数组
- python - 条件语句 Python Apache Beam 管道
- python - 使用 selenium 执行 python 脚本时出错
- python - 如何从文本文件中解析电子邮件和密码(Python)
- ms-access-2013 - VBA“INSERT INTO”错误 - 从 Excel 导入数据
- c# - 客户端从 swagger 规范 API 网络核心生成代码的抽象类
- scala - Spark 2 一次合并多个列
- r - 计算二进制变量的特定值并仅返回计数,最好使用 dplyr