图1
1.将使用的gradle版本下载到本地
下载地址 Gradle | Releases,将要使用的gradle下载到本地
2.配置AndroidStudio中的gradle目录
打开AndroidStudio使用快捷键 ctrl+alt+s,打开Settings面板
搜索栏中输入Gradle,右边则是配置主界面
①Gradle user home 一栏,选择 图1 中的GradleUserHome文件夹
②Use Gradle from 一栏,选择 Specified location ,然后选用 图1 的gradle-8.0文件夹
这样项目中使用的gradle版本就是本地的,与project中的 wraper/gradle-wrapper.properties 设置的gradle版本脱离了关系。
3.配置环境变量
新建“系统变量”,添加变量名 GRADLE_HOME ,变量值设置为解压后的文件夹目录
在path目录中添加 %GRADLE_HOME%\bin
在windows命令行中输入 gradle -v ,如果显示gradle版本信息则表示配置成功,然后我们就可以在AndroidStudio中的命令行(Terminal)使用gradle相关的命令,如图使用 gradle -v
4.gradlew相关
project中的 wraper/gradle-wrapper.properties 是默认的保存gradle版本和gradle相关缓存的位置,一般在 C:\Users\xxx\.gradle 目录下,且看官方讲解
(配置 build | Android Studio | Android Developers)
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/distsGradle 封装容器文件:
Gradle 封装容器 (gradlew) 是一个包含在源代码中的小型应用,用于下载和启动 Gradle 本身。这可以创建更一致的构建执行。开发者下载应用源代码并运行 gradlew。这将下载所需的 Gradle 发行版,并启动 Gradle 以构建应用。
gradle/wrapper/gradle-wrapper.properties 文件包含一个属性 distributionUrl,该属性描述了用于运行 build 的 Gradle 版本。
gradle-wrapper.properties也可使用本地gradle版本,
(1)将 distributionUrl 设置为 图1 gradle-8.0-all.zip 的存放目录
distributionUrl=file\:///D:/SoftWare/ProgramSoftWare/gradle/gradle-8.0-all.zip
(2)修改distributionBase中GRADLE_USER_HOME的默认路径
添加 GRADLE_USER_HOME 环境变量,目录为 图1 GradleUserHome文件夹
然后在 path 下面添加 %GRADLE_USER_HOME%
同样使用GradleUserHome文件夹,目的是为了与上面AndroidStudio配置的保持一致
提示 :如果同时处理多个项目,请尽可能确保所有项目都使用相同的 Gradle 版本。否则,除了为每个用于运行 Gradle 的 JDK 创建单独的副本之外,Gradle 还会为每个 Gradle 版本创建 Gradle 守护程序的副本。这会增加内存和 CPU 使用率,可能会降低构建速度或影响机器上的其他工作。
在AndroidStudio中的Terminal中使用 ./gradlew -v ,如果显示版本信息则表示配置成功。
这里的gradlew代表的是 gradle wraper,如果使用gradlew命令,则需要前面添加 ./
5.配置JAVA SDK版本
继续测试配置的gradle版本,那么我们继续用Terminal输入 gradle -q tasks 和 ./gradlew -q tasks
正常情况输出的内容是一样的,但测试的时候发现报了异常,额外说一下
Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 8
一连串的错误显示与Java版本有关,查看官方有如下描述
(Android build 中的 Java 版本 | Android Studio | Android Developers)
如何选择运行 Gradle build 的 JDK?
如果您使用 Android Studio 中的按钮运行 Gradle,系统会使用 Android Studio 设置中设置的 JDK 运行 Gradle。如果您在 Android Studio 内部或外部的终端中运行 Gradle,JAVA_HOME 环境变量(如果已设置)决定了运行 Gradle 脚本的 JDK。如果未设置 JAVA_HOME,它会对 PATH 环境变量使用 java 命令。为了获得最一致的结果,请务必将您的 JAVA_HOME 环境变量以及 Android Studio 中的 Gradle JDK 配置设置为同一 JDK。
注意 :如果您在 Android Studio 终端中通过右键点击并选择 RunHighlight 命令来使用 IDE 运行 Gradle 命令,则会使用 Android Studio 设置中的 JDK,而不是 JAVA_HOME。
运行 build 时,Gradle 会创建一个名为“守护程序”的进程来执行实际构建。只要 build 使用相同的 JDK 和 Gradle 版本,就可以重复使用此过程。重复使用守护程序可缩短启动新 JVM 和初始化构建系统的时间。
如果您使用不同的 JDK 或 Gradle 版本启动 build,则会创建额外的守护程序,这会消耗更多的 CPU 和内存。
提示 :在同时处理多个项目时,如果可能,请在其 gradle-wrapper.properties 文件中指定相同的 Gradle 版本,以减少创建的 Gradle 守护程序的数量。
此时用的是Terminal运行的Gradle,因此调用的JDK版本是JAVA_HOME配置的,这里还是用的java 8,因此冲突是必然的,将JAVA_HOME配置的路径改成AndroidStudio里面设置的路径(如下图),版本统一起来则可以正常调用命令