【AndroidStudio】2022.3Giraffe连接超时,更换下载源,使用本地gradle,版本对应问题

记录了使用AndroidStudio2022.3 Giraffe版本在搭建环境时遇到的问题,包括连接超时,gradle无法读取等。
如果只看如何正确的配置,直接跳转第3节 配置汇总

1 连接超时

项目一开始会自动下载gardle文件来加载项目
在这里插入图片描述

1.1 Connect timed out

基本上很快就会连接超时
在这里插入图片描述
于是试了给项目的settings.gradle加上下载源,但是未生效在这里插入图片描述
再次尝试修改模块的properties配置文件来指定下载源

源地址:https://mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip

在这里插入图片描述
顺利成功
在这里插入图片描述
但是下载gradle编译太过于依赖网络,于是尝试下载gradle到本地,再使用本地gradle

2 使用本地gradle遇到的问题

尝试使用本地下载的gradle遇到的问题

下载gradle地址

2.1 Could not load wrapper properties from…

gradle默认下载目录在C:/Users/用户名/.gradle/wrapper/dists/,我尝试了将gradle文件自行下载到该目录下,然后修改gradle-wrapper.properties文件中关于下载的配置,重新Sync项目,但是报错Could not load wrapper properties from
在这里插入图片描述
这里为什么没有成功识别properties指定的本地目录的原因没找到,猜测可能是

  1. 下载的本地文件格式与需要的不一致,无法识别
  2. 其他配置文件优先级大于properties配置优先级
  3. 文件夹权限问题致使无法读取

2.2 Could not resolve com.android.tools.build:gradle:8.1.2

  • 排除文件夹读取权限问题
    我在E盘下新建了如图的gradles文件夹作为下载位置,下载的gradle文件还要进一步放在/wrapper/dists文件夹下
    在这里插入图片描述
  • 排除配置文件优先级问题
    在File > Settings > Build > BuildTools > Gradle下面修改Use Gradle From为自己下载的gradle,注意需要解压,另外把Gradle JDK改为了本地jdk8版本。
    在这里插入图片描述
    在这里插入图片描述
    gradle成功开始编译了
    在这里插入图片描述
    然后报错信息如下

A problem occurred configuring root project ‘My Application3’.
Could not resolve all files for configuration ‘:classpath’.
Could not resolve com.android.tools.build:gradle:8.1.2.
Required by:
project : > com.android.application:com.android.application.gradle.plugin:8.1.2
No matching variant of com.android.tools.build:gradle:8.1.2 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute ‘org.gradle.plugin.api-version’ with value ‘8.0’ but:
- Variant ‘apiElements’ capability com.android.tools.build:gradle:8.1.2 declares a library, packaged as a jar, and its dependencies declared externally:
- Incompatible because this component declares a component for use during compile-time, compatible with Java 11 and the consumer needed a component for use during runtime, compatible with Java 8
- Other compatible attribute:
- Doesn’t say anything about org.gradle.plugin.api-version (required ‘8.0’)
- Variant ‘javadocElements’ capability com.android.tools.build:gradle:8.1.2 declares a component for use during runtime, and its dependencies declared externally:
在这里插入图片描述

  • 错误尝试
    一开始我以为是gradle plugins版本的问题,gradle pluginsgradle是两个东西,类似于maven插件maven仓库
    在File > Project Structure > Project 设置中可以看到AGP与GV版本,根据描述AGP不能被直接修改,需要使用工具,但是可以点击这里自行输入一个版本
    在这里插入图片描述
    我一开始使用的是gradle 7.0.2版本,把AGP修改为了7.4.2版本,但是保存后仍未编译成功,另外这里AGP8.1.2版本对应gradle8.0是没问题的,所以不需改动
  • 正确尝试
    再次观察报错信息中有这一句

Incompatible because this component declares a component for use during compile-time, compatible with Java 11 and the consumer needed a component for use during runtime, compatible with Java 8

意思大概是gradle8.0版本应对应最低java11,而我设置使用本地java8
更改setting中JDK版本为AndroidStudio自行下载的jdk17
在这里插入图片描述
再次编译!成功
在这里插入图片描述

3 配置汇总

首先是连接超时关于下载镜像的更换

3.1 下载镜像源更换

源地址:https://mirrors.cloud.tencent.com/gradle/gradle-8.0-bin.zip

在这里插入图片描述
不想下载镜像源,想使用本地gradle

3.2 本地gradle下载

下载gradle地址
在E盘下新建了如图的gradles文件夹作为下载位置,下载的gradle文件还要进一步放在/wrapper/dists文件夹下,
在这里插入图片描述
在这里插入图片描述
另外,AGP插件使用本地gradle如果需要下载一些东西又可能连接超时,所以在本地gradle文件中创建一个配置文件,指定下载源
在这里插入图片描述
init.gradle文件内容:

allprojects {
   
    repositories {
    
        mavenLocal() 
        maven {
    name "Alibaba" ; url "https://maven.aliyun.com/repository/public" } 
        maven {
    name "Bstek" ; url "https://nexus.bsdn.org/content/groups/public/" } 
        mavenCentral()
    }
    buildscript {
   
        repositories {
    
            maven {
    name "Alibaba" ; url 'https://maven.aliyun.com/repository/public' } 
            maven {
    name "Bstek" ; url 'https://nexus.bsdn.org/content/groups/public/' } 
            maven {
    name "M2" ; url 'https://plugins.gradle.org/m2/' }
        }
    }
}

3.3其他问题

  • 使用本地gradle时,要注意gradle plugins版本,可以自行查询两者版本对应关系
  • gradle版本和jdk版本有一定对应要求,例如gradle8.0必须使用jdk11以上(也有一说AndroidStudio Giraffe必须使用jdk17以上)

相关推荐

  1. 解决Python使用默认PyPI连接超时问题

    2024-01-28 05:34:02       41 阅读
  2. 解决更新Android Studio后下载Gradle超时

    2024-01-28 05:34:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-28 05:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-28 05:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-28 05:34:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-28 05:34:02       20 阅读

热门阅读

  1. 【计算机二级考试C语言】C头文件

    2024-01-28 05:34:02       34 阅读
  2. Vue2 长文本展示和收起

    2024-01-28 05:34:02       36 阅读
  3. 蒙特卡洛模拟之合成控制法

    2024-01-28 05:34:02       30 阅读
  4. spring与spring boot的区别

    2024-01-28 05:34:02       32 阅读
  5. Vue 插槽讲解

    2024-01-28 05:34:02       34 阅读
  6. Linux/Uinx 系统编程:getopt()函数用法

    2024-01-28 05:34:02       31 阅读
  7. 力扣24-两两交换链表中的节点

    2024-01-28 05:34:02       41 阅读
  8. 基于SpringBoot实现策略模式提供系统接口扩展能力

    2024-01-28 05:34:02       36 阅读
  9. LeetCode-题目整理【11】:回溯算法

    2024-01-28 05:34:02       22 阅读