Android Studio 2022.1.1创建项目的Gradle配置问题
作者:0xfather 发布时间:2022-05-05 21:45:36
今天使用Android Studio建了一个新项目,遇到了不少问题,网上也找了不少解决方案都无效(可能Studio版本、项目版本等都不一样,解决办法也不一样吧),最后问题解决,总结梳理以下几点:
1.版本确认
Android Studio版本:2022.1.1
Gradle版本:7.5
Android Gradle Plugin Version:7.4.2
JDK版本:Java 11
SDK版本:33(Android 13.0)
2.遇到的问题
could not resolve plugin artifact 'com.android.application:com.android.application.gradle.plugin:7.4.2'
该问题出现,直接导致项目无法完成编译,看似是gradle插件版本过高问题,导致adnroid核心包无法下载下来,实际上归根结底还是“网络的问题”。
3.解决办法
1)检查各版本配置是否正确
Gradle插件和Gradle工具的版本对应是有要求的,详见下图:
另外可在Adroid官网查看对应关系:Android Gradle 插件版本说明 | Android 开发者 | Android Developers
根据上图可以看出,本次使用的Android Gradle Plugin Version版本是7.4.x,因此对应的Gradle版本是7.5版本(别搞错了,版本不对应一样可能无法完成更新下载)。
另外JDK版本也不宜太高,最初我使用的JDK17,结果发现Android Studio2022.1.1最高支持JDK为Java 11,所以需要降级到Java 11。
该配置可在File —> Project Structure —> Modules中查看确认。
2)网络配置
使用代理或梯子是完成不了更新的,所以强烈建议将仓库地支更换为国内源,比如阿里源。
完整的setting.gradle配置:
pluginManagement {
repositories {
maven { url "https://jitpack.io" }
maven { url 'https://maven.aliyun.com/repository/releases' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
maven { url "https://jitpack.io" }
maven { url 'https://maven.aliyun.com/repository/releases' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/central' }
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
maven { url 'https://maven.aliyun.com/repository/public' }
google()
mavenCentral()
}
}
rootProject.name = "XXX"
include ':app'
注:Gradle7.5的Maven仓库配置已经从build.gradle文件转移到setting.gradle文件里了,因此该配置要写在setting.gradle文件里
3)关闭Android Studio代理
这一步很关键,我就是忘记关闭,折腾了半天才发现问题。
打开File —> Setting —> 搜索proxy —> 选择Http Proxy,选择No proxy并确认
4)配置本地Gradle
Android Studio内置了Gradle,但是他在项目编译时才下载Gradle工具,but 不要抱有期望了,下不下来的,还是自己手动下载Gradle工具吧(注意下载对应版本,我这里的对应版本是7.5,若不清楚对应版本,可以看看前面的内容,查看自己需要的版本)。
Gradle版本下载:Gradle Distributions
下载完成后需要配置几个地方:
打开File —> Setting —> Build,Execution…… —> Build Tools —> Gradle。
a.设置Gradle user home为你安装的gradle目录;
b.设置下方User Gradle from为Specified location,并选择你的gradle目录;
c.选择Gradle JDK版本为Java 11
这样就完全使用本地gradle进行编译了。若使用默认的Gradle user home,则需要修改C:\Users\用户名\.gradle\目录下的gradle.properties文件,注释掉以下代理内容(使用内置Gradle不禁用这里代理仍然会被使用,从而可能导致下载失败):
## For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
#
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx1024m -XX:MaxPermSize=256m
# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
#
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
#Fri Apr 07 16:23:59 CST 2023
# systemProp.http.proxyHost=mirrors.neusoft.edu.cn
# systemProp.https.proxyHost=mirrors.neusoft.edu.cn
# systemProp.https.proxyPort=80
# systemProp.http.proxyPort=80
经过以上步骤,项目重新编译应该就可以正常下载更新了。
题外话:若不使用本地Gradle工具,还可能会产生Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"问题哟。
4.其他配置
1)修改Android Studio运行环境内存
打开File —> Setting —> Appearance & Behavior —> System Settings —> Memory Settings,更改内存为4096MB(根据自己实际情况更改)
2) 修改字符集编码
打开File —> Setting —> 搜索coding —> Editor —> File Encodings,设置Global Encoding、Project Encoding和Default encoding for properties files为UTF-8,在上方“+”选择项目根路径,表示整个项目使用UTF-8编码。
来源:https://blog.csdn.net/Asgard_Hu/article/details/130060484
猜你喜欢
- 一、新建项目并设置界面新建项目:选择Windows窗体项目应用(.Net Framework):设置项目名和路径:新建项目如下:设置界面:将
- Java公众号【Java技术迷】一个在互联网领先地位,微信搜索【Java技术迷】第一时间阅读最新文章,通过下面下载链接,即可获得我精心整理的
- 简介说明本文用实例来介绍@Autowired解决循环依赖的原理。@Autowired是通过 * 缓存来解决循环依赖的。 除了@Aut
- springcloud多个消费端重复定义feign clientspring cloud消费端调用服务提供者,有两种方式rest+ribbo
- 前言总结java常见的锁区分各个锁机制以及如何使用使用方法锁名考察线程是否要锁住同步资源乐观锁和悲观锁锁住同步资源后,要不要阻塞不阻塞可以使
- 成员类型访问权限低于字段本身现在假设你有一个小兵类,他的访问权限是仅限当前程序集。internal class 小兵{public int
- 1. 什么是对象池对象池,顾名思义就是一定数量的已经创建好的对象(Object)的集合。当需要创建对象时,先在池子中获取,如果池子中没有符合
- 项目背景在做项目的时候,把SpringBoot的项目打包成安装包了,在客户上面安装运行,一切都是那么的完美,可是发生了意外,对方突然说导出导
- Android Studio 是谷歌基于IntelliJ IDEA开发的安卓开发工具,有点类似 EcliPSe ADT,Android St
- 一、Java内存区域方法区(公有):用户存储已被虚拟机加载的类信息,常量,静态常量,即时编译器编译后的代码等数据。异常状态 OutOfMem
- 1. JNI简介JNI是Java Native Interface的英文缩写,意为Java本地接口。问题来源:由于Java编写底层的应用较难
- 此处项目环境为简单的springboot+mybatis环境。可查看到上一篇文章搭建的简单springboot+mybatis的项目想要控制
- 一、消息中间件相关知识1、概述消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列
- 如下所示://定义二维数组写法1 class numthree{public static void main(String[] args)
- IO的本质IO的作用就是从外部系统读取数据到java程序中,或者把java程序中输出的数据写回到外部系统。这里的外部系统可能是磁盘,网络流等
- 前言:其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组、List等等来写出
- MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱
- 如下所示:import java.util.ArrayList;//java中申请不定长度数组public class Test01 {pu
- 1.概述在本教程中,我们将讨论如何使用Spring Security OAuth和Spring Boot实现SSO - 单点登录。我们将使用
- import java.lang.reflect.InvocationHandler;import java.lang.reflect.Me