当前位置: 首页 > news >正文

【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以上)
http://www.lryc.cn/news/289468.html

相关文章:

  • 【Midjourney】内容展示风格关键词
  • openssl3.2/test/certs - 056 - all DNS-like CNs allowed by CA1, no SANs
  • mysql INSERT数据覆盖现有元素(若存在)
  • 攻防世界WEB新手训练区
  • Go语言安装及开发环境配置
  • 知识搜索术学习笔记
  • 【深度学习】sdxl中的 tokenizer tokenizer_2 区别
  • 使用一个定时器(timer_fd)管理多个定时事件
  • C++:使用tinyXML生成矢量图svg
  • day34_js
  • AR 自回归模型
  • 51单片机ESP8266
  • php 源码加密保护 bease方案
  • FFMPEG解析ts流
  • Java基础-实现猜数字小游戏
  • 爬虫(一)
  • 【软件测试】学习笔记-Nginx 在系统架构中的作用
  • 鸿蒙开发【应用开发基础知识】
  • 腾讯云幻兽帕鲁4核16G14M服务器性能测评和价格
  • Linux第一个小程序——进度条
  • (N-141)基于springboot,vue网上拍卖平台
  • 深入了解Figure的结构与层次
  • c语言基础6
  • kotlin sum 与 sumOf
  • php怎么输入一个变量,http常用的两种请求方式getpost(ctf基础)
  • Spring Boot 项目配置文件
  • 学校“数据结构”课程Project—扩展功能(自主设计)
  • 从0开始搭建若依微服务项目 RuoYi-Cloud(保姆式教程 一)
  • 【Chrome】浏览器怎么清除缓存并强制刷新
  • Android创建保存Excel文件