Gradle Sync Error : ANDROID_HOME 与 ANDROID_SDK_ROOT 指向不一致

当你在 Android Studio 中 gradle sync 并报一下错误时:

Several environment variables and/or system properties contain different paths to the SDK.
Please correct and use only one way to inject the SDK location.


ANDROID_HOME: xxxxxx
ANDROID_SDK_ROOT: /Users/username/Library/Android/sdk


It is recommended to use ANDROID_HOME as other methods are deprecated

由于 ANDROID_HOME 与 ANDROID_SDK_ROOT 设置了不同路径导致的,

按道理只要 ANDROID_SDK_ROOT 设置正确即可,因为按照官方文档定义,两者关系如下:

  • 如果定义了 ANDROID_HOME 并且其中包含有效的 SDK 安装,系统会使用 ANDROID_HOME 的值而不是 ANDROID_SDK_ROOT 中的值。
  • 如果未定义 ANDROID_HOME,系统会使用 ANDROID_SDK_ROOT 中的值。
  • 如果定义了 ANDROID_HOME,但其中不存在或不包含有效的 SDK 安装,系统会使用 ANDROID_SDK_ROOT 中的值。

但既然报错了,就按照错误提示修改吧, 修改 ANDROID_HOME 的路径,以 MacOS 为例,在 bash 文件中添加 $ANDROID_HOME

vi ~/.bash_profile 
export $ANDROID_HOME=/Users/username/Library/Android/sdk

使之生效并验证

source ~/.bash_profile
echo $ANDROID_HOME

重启你报错的 Android Studio 然后重新 sync 工程,问题解决。

### 关于 Android Studio 下载工具包卡住的解决方案 当 Android Studio 在下载工具包时发生卡住的情况,可能是由于网络连接稳定、代理设置正确或者本地缓存文件损坏等原因引起的。以下是针对该问题的具体分析解决方法: #### 1. **检查网络连接** 确保当前设备具有稳定的互联网连接。如果使用的是公司或学校的局域网环境,可能存在防火墙限制访问 Google 的服务器。可以尝试切换至其他网络环境来验证是否存在此类问题[^4]。 #### 2. **配置 HTTP/HTTPS 代理** 对于某些地区用户来说,默认情况下可能无法正常访问 Google 的服务。此时可以通过手动配置 HTTP HTTPS 代理解决问题: 进入 `File -> Settings -> Appearance & Behavior -> System Settings -> HTTP Proxy`,选择自动检测代理或手动输入代理地址端口号。 #### 3. **清理 SDK 缓存并重新同步项目** 有时旧版本的 SDK 工具可能会导致冲突从而引发加载失败现象。执行以下操作清除相关数据后再试一次即可恢复正常工作流程: - 打开终端窗口运行命令: ```bash ./gradlew cleanBuildCache --refresh-dependencies ``` - 接着回到 IDE 中点击菜单栏中的按钮:“Sync Project with Gradle Files”。 #### 4. **更新 Android Studio 及其插件** 保持软件处于最新状态有助于获得更好的兼容性性能表现。按照官方文档指引完成升级过程后重启程序再做进一步观察[^1]。 #### 5. **调整 AVD 设置优化启动速度** 虽然题目主要讨论的是工具包下载过程中遇到阻碍的现象,但考虑到实际应用场景下两者之间存在一定关联度,在此额外提及相关建议供参考借鉴: - 减少分配给模拟器使用的 RAM 数量; - 启用硬件加速功能支持虚拟化技术(Intel HAXM / AMD Virtualization Technology); - 如果仍然存在问题,则考虑更换目标 API Level 或者机型规格参数设定值[^3]。 ```python # 示例 Python 脚本用于自动化处理部分重复任务 import os def clear_cache(): gradle_path = "/path/to/your/project/.gradle" if os.path.exists(gradle_path): for root, dirs, files in os.walk(gradle_path): for file_name in files: full_file_path = os.path.join(root, file_name) try: if ".lock" not in full_file_path and "__cache__" not in full_file_path: os.remove(full_file_path) except Exception as e: print(f"Error deleting {full_file_path}: {e}") if __name__ == "__main__": clear_cache() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fundroid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值