我是第一次导入别人的包,然后遇上了很多问题,最终都是尽量直接的解决。因为担心以后还会遇见这种问题,特此记录解决方法。
我主要是connect time out + No subject alternative DNS name matching github.com found.两个问题来回不断的跳出。
第一步:这一步是最关键的解决步骤。
在解决 Android Studio 问题的过程中,我尝试了多种方法,包括修改 URL、手动下载 Gradle 版本、更改 DNS 设置以及关闭防火墙,但这些方法都未能奏效。正当我感到绝望时,我决定修改 `gradle-wrapper.properties` 文件中的 `distributionUrl`,使其从阿里云下载所需的 Gradle 版本。最终,这一方法成功解决了问题。此外,我还删除了项目中的仓库 `repositories`,以进一步优化配置。这一系列调整使我能够顺利地进行项目开发。
distributionUrl=https://mirrors.aliyun.com/gradle/distributions/v7.5.0/gradle-7.5-bin.zip
在尝试解决 Android Studio 的连接问题时,我经历了以下过程:
1. DNS 设置问题:我能够通过浏览器正常访问 `google.com` 和 `github.com`,但 `ping` 命令无法访问 `google.com`。这让我意识到可能是 ICMP 协议被限制,而不是网络连接本身的问题,因此修改 DNS 设置可能无法解决问题。
2. 代理设置检查:我确认了 Android Studio 的网络设置为 “No Proxy”,确保没有代理干扰连接。
3. 连接超时问题:尽管尝试了多种方法(如修改 DNS、关闭防火墙等),但仍然遇到 `connect time out` 错误。这让我怀疑可能是网络环境的复杂性(如企业网络限制或 ISP 问题)导致了连接问题。
4. 解决方案:最终,我通过修改 `gradle-wrapper.properties` 文件中的 `distributionUrl`,使其从阿里云下载所需的 Gradle 版本,成功解决了问题。此外,我删除了项目中的仓库 `repositories`,以进一步优化配置。
5. 网络环境的复杂性:尽管我能够通过浏览器访问 `google.com`,但网络请求超时的问题仍然存在。这让我意识到网络环境可能非常复杂,导致某些请求无法正常完成。
6. 经验分享:在查看经验帖时,我注意到许多人通过修改 DNS 设置成功解决问题,但我的情况可能更为复杂。我意识到网络环境的差异可能导致不同的解决方案效果不同。
通过这一系列的尝试和调整,我最终找到了适合我的解决方案,尽管过程中遇到了一些挫折,但最终成功稳定了项目开发环境。
第二步:除了第一步我是自己找到的解决办法,接下来的都是看别人的经验帖。
首先我们要找到File的Project Structure,然后改如图所示的两个Version。说实话我也不知道怎么改的。我本来是gradle version=7.4.2, 然后告诉我我的版本最低得是7.5,那我改成7.5吧,又告诉我我没有7.5,需要升级,那我就升级吧,于是我在terminal里面运行了这条命令。并把android gradle plugin version和gradle version都改成了7.5。
./gradlew wrapper --gradle-version 7.5
运行好了,Bulid成功了,但是还得继续 Sync Project with gradle files,然后又报错,告诉我android gradle plugin version=7.5不行,那我改回7.4.2,欸,成功了,我完全成功了。
虽然我不明白为什么他们不能统一,但大概是我升级了某个版本,这个版本又能兼容plugin插件,而我没有升级plugin插件,最后成功了我也懒得继续了。
第三步,其他:这里基本上不重要,是我对自己的一个记录。
1.如果sdk出现问题了,我可以去Tools的SDK Manager里面确认我的路径没有问题
2.如果我怀疑我的证书有问题,我可以去github首页顶部,点击“安全锁”图案查看证书,并下载或者导出证书到我的电脑里。并使用以下命令,导入到我的$JAVA_HOME/lib/security/cacerts
keytool -import -alias github -keystore /path/to/java/lib/security/cacerts -file /path/to/downloaded/github.crt
还可以使用下面这条命令确认我的证书里确实包含github.com
openssl x509 -in github.crt -text -noout
同时也可以通过下载openssl来查看验证书的内容
openssl x509 -in github.crt -text -noout
3.如果我怀疑我的DNS有问题,我可以使用
tracert google.com //追踪网络路径
ipconfig /flushdns //清楚DNS缓存
curl google.com //但如果ping和tracert都存在问题,这条命令却不存在问题。说明问题仅存在与ICMP问题里,浏览器或者应用程序是没有问题的
总结:两个问题交替出现,我搞一天了。我还重装了jdk,就差重装android studio了。可是重装as我又不服,如果重装就代表我认输了,以后导入别人的不同版本的文件,我可能都要手动操作或者安装多个as。这不好,一点也不好。希望我真真正正的学会了如何导入别人的包。祈祷祈祷祈祷。