You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio打开同仓库两个项目Git版本不一致问题咨询

问题根因拆解

  1. 核心误区:Android Studio的Git配置不影响Gradle脚本的命令搜索逻辑
    你在AS设置中配置的Git路径,仅供给AS自带的版本控制功能使用。Gradle脚本中通过"git --version".execute()调用Git时,会直接从当前Gradle进程的PATH环境变量里搜索Git可执行文件,完全不会读取AS的Git配置,所以两个项目AS配置相同也会出现版本不一致的情况。

  2. M1芯片的架构差异导致进程PATH不同
    M1系列Mac支持两种进程运行模式:ARM原生模式、Rosetta 2转译的x86_64模式,两种模式下进程加载到的PATH环境变量优先级不同:

  • 如果Gradle进程以x86_64模式运行,/usr/bin的优先级可能高于/opt/local/bin,搜索到的是系统自带的/usr/bin/git,对应版本2.30.1
  • 如果Gradle进程以ARM原生模式运行,/opt/local/bin优先级更高,搜索到的是你额外安装的/opt/local/bin/git,对应版本2.14.1
  1. 项目Gradle JDK配置差异触发架构差异
    如果两个项目配置的Gradle JDK架构不同(一个是x86版JDK、一个是ARM版JDK),就会导致两个项目的Gradle进程运行架构不同,最终搜索到的Git版本不一致。

验证方法

你可以在两个项目的Gradle脚本中添加如下打印逻辑,就能直接看到差异:

// 打印当前进程的PATH
println("当前PATH:${System.getenv("PATH")}")
// 打印当前进程运行架构
println("当前架构:${System.getProperty("os.arch")}")

解决方案

如果要保证两个项目调用的Git版本统一,不要直接调用git命令,而是写死Git的绝对路径即可:

println("## ${"/opt/local/bin/git --version".execute().text.trim()}")

内容的提问来源于stack exchange,提问作者Favolas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 02:36:05