在跟着安卓官方教程学习的时候,我发现每次导入教程里的项目,Android Studio都会下载Gradle和Android Gradle plugin等一大堆东西,才能启动项目。从此以后,我就发现安装盘的空间一点点减少。在查询了无数种方法后,依然得不到解决,后来经过摸索以及阅读官方文档,终于解决了该问题。但是该方法依然麻烦,每次导入项目都要手动设置一些东西,但好在设置的时间小于下载Gradle的时间,也不用再下载各种版本的Gradle了。

首先,之所以导入别人项目时AS都会下载Gradle,是因为项目中使用的Gradle版本与本地中的Gradle版本不一致(我发现好像即使本地中已经存在该版本的Gradle,AS依然会重新下载Gradle),这样,你每次导入项目AS就会下载各种各样的Gradle。

我的方法是在本地安装最新版Gradle,以及在AD中配置最新版Android Gradle plugin,以后导入其他项目时,都用该版本的Gradle和Android Gradle plugin,为什么要用最新版呢,官方文档是这样说的:

并且注意Gradle和Android Gradle plugin之间的版本兼容性,我直接选择两者最新版:

同理,你导入的项目的Kotlin版本和Compose Compiler版本与本地的不一致,也会导致重新下载,所以下一步顺便再配置最新版Koltlin和Compose Compiler,以后的项目都使用统一的Koltlin和Compose Compiler版本,或者根据情况使用原版。

注意Kotlin和Compose Compiler之间的版本兼容性:

下面是完整的导入项目并配置Gradle,plugins的过程:

第一步,根据Gradle官方文档下载最新版Gradle,我的是8.9

第二步,clone完成或导入项目后,直接断网,根据下图,Gradle一栏中的Distribution选择Local installation,并选择你的Gradle安装路径,Gradle JDK选择GRADLE_LOCAL_JAVA_HOME即可:

Gradle JDK选择GRADLE_LOCAL_JAVA_HOME即可:

点击OK,点击Try again:

接着会爆红,打开Project根目录下的build.gradle.kts文件,修改Android Gradle plugin,将plugins中前两项改为8.5.0(我使用的Gradle是8.9),记得去官方文档查看与Gradle的兼容性:> https://developer.android.google.cn/build/releases/gradle-plugin?hl=en#updating-gradle

第三行org.jetbrains.kotlin.android是Koltin版本,根据需要改成2.0.0,再点一次Try again,不出意外会提示Compose Compiler plugin不兼容:

第三步,配置Compose Compiler

首先配置Compose Compiler Gradle plugin:

在Project目录下,右击gradle文件夹,New->File,创建一个名为libs.versions.toml的文件夹
,复制一下代码进去:

点击查看代码
[versions]
kotlin = "2.0.0"

[plugins]
org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }

在project目录中,在build.gradle.kts文件夹的plugins中加入该插件:

点击查看代码
plugins {
   // Existing plugins
   alias(libs.plugins.compose.compiler) apply false
}

打开app下的build.gradle.kts,加入该插件:

点击查看代码
plugins {
   // Existing plugins
   alias(libs.plugins.compose.compiler)
}

点一下Sync now,如果爆红说需要下载东西,这个时候就可以联网了,下载完必要的东西,后续再导入其他项目应该是不用再下载了

到这里就结束了,整个过程是有点麻烦,但这也是我自己摸索出来唯一有效的方法,总好过每次都要下载一堆各种版本的Gradle和Kotlin,统统使用统一的版本,其实操作的时间也比下载Gradle的时间要快很多。如果有更好的方法欢迎大家请指出,虽然没有下载东西了,但是我还是感觉C盘依然在慢慢变小。。。