近日开发过程中,由于旧项目有迭代开发的需求,尝试用最新版 Android Studio 2025 依赖环境无法正常运行,因此尝试安装旧版Android Studio 环境,结果国内资源网站上都是坑,特别是C**N 资源,下载一个旧版本居然收费。。。

一、历史版本下载解决方法
1. 打开 Android Studio官网,发现只有最新版本的下载地址:

国内居然就找不到个下载的地方。。。
2. 无奈只能 Google 一翻,才发现了官网的奥秘所在,需要将页面切换到 English,

3. 点击上面切换按钮并找到 Past Release

4. 进入到 Android 归档页面,点击同意协议:

5. 页面将正常显示历史版本下载页面:

二、Android Studio 版本与 AGP 适配关系
Android Studio 与 Android Gradle 插件 (AGP) 的版本对应关系非常重要,不匹配的版本组合可能导致构建失败或出现意外问题。下面这个表格汇总了近年来的主要版本对应情况。
| Android Studio 版本 (代号/年度) | 支持的 AGP 版本范围 | 关键变化点 |
|---|---|---|
| Otter (2025.2.x) | 4.0 - 8.13 | 支持 AGP 8.13 |
| Narwhal (2025.1.x) | 3.2 - 8.11 至 4.0 - 8.13 | 自 2025.1.2 起,最低 AGP 版本要求提升至 4.0 |
| Meerkat (2024.3.x) | 3.2 - 8.9 / 3.2 - 8.10 | 支持 AGP 8.9 及以上 |
| Ladybug (2024.2.x) | 3.2 - 8.7 / 3.2 - 8.8 | 支持 AGP 8.7 和 8.8 |
| Koala (2024.1.x) | 3.2 - 8.5 / 3.2 - 8.6 | 支持 AGP 8.5 和 8.6 |
| Jellyfish (2023.3.x) | 3.2 - 8.4 | 支持 AGP 8.4 |
| Iguana (2023.2.x) | 3.2 - 8.3 | 支持 AGP 8.3 |
| Hedgehog (2023.1.x) | 3.2 - 8.2 | 最低支持 compileSdk 34 |
| Flamingo (2022.2.x) | 3.2 - 8.0 | 首个支持 AGP 8.0 的版本 |
bash
// AGP 在项目根目录的 build.gradle 中
dependencies {
classpath "com.android.tools.build:gradle:8.4.0" // 修改为此处兼容的稳定版本
}
三、Gradle 与 Android Gradle 插件(AGP)版本关系
1. Gradle 与 AGP 的关系:
简单来说,Gradle 是一个通用的、功能强大的构建工具,而 AGP 是 Google 基于 Gradle 专门为 Android 项目开发的一个插件。AGP 为 Gradle 增添了处理 Android 特有资源(如清单文件、打包 APK/AAB)的能力 。它们各自独立版本化,但必须配套使用。
版本不匹配的后果:如果 AGP 和 Gradle 版本不兼容,在构建项目时会直接报错,例如提示 This version of the Android Gradle plugin requires Gradle X.X,并中止构建过程 。因此,严格遵守版本对应关系是顺利构建的前提。
JDK 版本要求:从 AGP 8.0 开始,强制要求使用 JDK 17 。对于 AGP 7.x 版本,推荐使用 JDK 11 。使用不匹配的 JDK 也可能导致构建失败。
2. AGP 版本与 Gradle 版本对应关系速查
| Android Gradle 插件 (AGP) 版本 | 所需的最小 Gradle 版本 | 备注与关键变更 |
|---|---|---|
| 8.7.0 | 8.9 | 支持 Gradle 8.9 - 8.10 |
| 8.6.0 | 8.7 | 支持 Gradle 8.7 - 8.9 |
| 8.5.0 | 8.7 | 支持 Gradle 8.7 - 8.9 |
| 8.4.0 | 8.6 | 支持 Gradle 8.6 - 8.7 |
| 8.3.0 | 8.4 | 支持 Gradle 8.4 - 8.6 |
| 8.2.0 | 8.2 | 支持 Gradle 8.2 - 8.4 |
| 8.1.0 | 8.0 | 支持 Gradle 8.0 - 8.2 |
| 8.0.0 | 8.0 | 支持 Gradle 8.0 - 8.1 |
| 7.4.0 | 7.5 | 支持 Gradle 7.5 - 7.6 |
| 7.3.0 | 7.4 | - |
| 7.2.0 | 7.3 | - |
| 7.1.0 | 7.2 | - |
| 7.0.0 | 7.0 | 支持 Gradle 7.0 - 7.2 |
四. Android 项目配置 Gradle
1. Android 项目 Gradle Wrapper 配置,
可以修改项目根目录下 gradle/wrapper/gradle-wrapper.properties文件:
bash
# 将默认的 services.gradle.org 地址替换为国内镜像地址
#distributionUrl = https\://services.gradle.org/distributions/gradle-8.6-bin.zip
# 例如,替换为阿里云镜像
distributionUrl=https\://mirrors.aliyun.com/gradle/gradle-8.6-bin.zip
# 或者替换为腾讯云镜像
# distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.6-bin.zip
2. 配置项目依赖的仓库地址
项目依赖的仓库地址决定了构建时从哪里下载第三方库(如 guava, junit等)。配置可以在不同级别进行。
(1) 项目级别配置
在项目根目录的 build.gradle(或 build.gradle.kts)文件中配置 repositories,对所有模块生效:
bash
allprojects {
repositories {
maven { url 'https://maven.aliyun.com/repository/public/' } // 阿里云Maven镜像
mavenCentral() // 可保留,但优先级在镜像之后
google() // 如果需要Google的Android SDK等依赖
}
}
特别注意插件依赖仓库:Gradle 插件本身也是一种特殊依赖,其仓库有时需要单独配置。建议在项目根目录的 settings.gradle文件中添加pluginManagement块 。
bash
pluginManagement {
repositories {
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' } // Gradle 插件镜像
gradlePluginPortal() // 官方插件门户,可保留但优先级在后
}
}
(2) 全局配置
为避免每个项目都重复配置,可以创建全局初始化脚本。在用户主目录下的 .gradle文件夹中创建(或修改) init.gradle文件 。
bash
allprojects {
repositories {
mavenLocal() // 先查看本地Maven仓库
maven { url 'https://maven.aliyun.com/repository/public/' } // 阿里云主仓库
maven { url 'https://maven.aliyun.com/repository/google/' } // Google仓库镜像
maven { url 'https://maven.aliyun.com/repository/gradle-plugin/' } // Gradle插件镜像
mavenCentral() // Maven中央仓库
}
}
3. 常用国内镜像源地址
| 镜像提供商 | Gradle 发行版镜像地址 | Maven 仓库镜像地址(用于项目依赖) |
|---|---|---|
| 阿里云 | https://mirrors.aliyun.com/gradle/ | https://maven.aliyun.com/repository/public/ |
| 腾讯云 | https://mirrors.cloud.tencent.com/gradle/ | - |
| 华为云 | https://mirrors.huaweicloud.com/gradle/ | - |
| 清华大学 | https://mirrors.tuna.tsinghua.edu.cn/gradle/ | https://mirrors.tuna.tsinghua.edu.cn/maven/ |
| 中国科学技术大学 | https://mirrors.ustc.edu.cn/gradle/ | https://mirrors.ustc.edu.cn/maven/ |
4. Android Gradle 常用命令速查
| 命令分类 | 命令示例 | 功能说明 |
|---|---|---|
| 项目信息查询 | ./gradlew -v 或 ./gradlew --version | 查看项目中使用的 Gradle、JVM 等版本信息。 |
| ./gradlew tasks | 列出项目中所有可用的任务及其简要描述。 | |
| ./gradlew tasks --all | 列出更详细的任务信息,包括缓存任务等。 | |
| 构建项目 | ./gradlew clean | 清理项目,删除 build目录,清除所有先前编译的中间文件。在切换分支或遇到构建问题时特别有用。 |
| ./gradlew assemble | 编译并打包生成所有变体(如 Debug 和 Release)的 APK 或 AAB 文件,但不运行测试。 | |
| ./gradlew assembleDebug | 仅编译并生成 Debug 版本的安装包。可简写为 ./gradlew aD。 | |
| ./gradlew assembleRelease | 仅编译并生成 Release 版本的安装包。可简写为 ./gradlew aR。 | |
| ./gradlew build | 执行完整构建,包括代码检查、运行测试和打包。此命令会生成所有类型的包。 | |
| 安装与运行 | ./gradlew installDebug | 将 Debug 版本的 APK 安装到当前已连接的设备或模拟器上。 |
| ./gradlew installRelease | 将 Release 版本的 APK 安装到设备上。 | |
| ./gradlew uninstallDebug | 从设备上卸载 Debug 版本的应用。 | |
| 测试与分析 | ./gradlew test | 运行在本地 JVM 上的单元测试。 |
| ./gradlew lint | 运行 Lint 代码静态分析,检查代码中的潜在问题。 | |
| ./gradlew signingReport | 显示应用的签名信息,如 SHA1、SHA-256 指纹等,常用于配置第三方服务。 | |
| 调试与排查 | ./gradlew dependencies | 显示项目的依赖关系树,是解决依赖冲突的神器。 |
| ./gradlew [task] --stacktrace | 构建失败时打印详细的堆栈跟踪信息,用于快速定位问题根源。 | |
| ./gradlew build --info | 输出比默认更详细的构建日志信息。 | |
| ./gradlew clean build --refresh-dependencies | 强制刷新依赖缓存,当依赖项更新后无法正常拉取时可使用此命令。 |
