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

手动运行cordova build正常,C# Process调用提示缺少Android构建工具

解决方案

1. 给Process显式补充Android相关环境变量

手动执行命令时,当前用户Shell会自动加载完整的Android环境变量,但C# Process组件默认的环境集合可能缺失关键项。在启动Process时,需要主动设置必要的变量:

var processStartInfo = new ProcessStartInfo
{
    FileName = "yarn",
    Arguments = "run cordova build android",
    UseShellExecute = false, // 关闭Shell执行才能手动修改环境变量
    RedirectStandardOutput = true,
    RedirectStandardError = true,
    WorkingDirectory = "你的项目根目录绝对路径"
};

// 补充Android SDK相关环境变量,替换为你本地的实际路径
var env = processStartInfo.EnvironmentVariables;
env["ANDROID_HOME"] = @"C:\Users\<你的用户名>\AppData\Local\Android\Sdk";
env["ANDROID_SDK_ROOT"] = @"C:\Users\<你的用户名>\AppData\Local\Android\Sdk";
// 必须添加build-tools目录到PATH,替换为你已安装的版本号或直接用build-tools根目录
env["PATH"] += @";C:\Users\<你的用户名>\AppData\Local\Android\Sdk\build-tools\34.0.0";
env["PATH"] += @";C:\Users\<你的用户名>\AppData\Local\Android\Sdk\tools";
env["PATH"] += @";C:\Users\<你的用户名>\AppData\Local\Android\Sdk\platform-tools";

// 启动进程并处理日志
using (var process = Process.Start(processStartInfo))
{
    string output = process.StandardOutput.ReadToEnd();
    string error = process.StandardError.ReadToEnd();
    process.WaitForExit();
    // 后续处理输出和错误日志
}

2. 适配网站服务进程的环境权限

如果你的应用部署在IIS等服务上:

  • 给应用池的运行身份授予Android SDK目录的读取权限,避免进程无法访问SDK文件。
  • 直接在系统环境变量中添加ANDROID_HOME、ANDROID_SDK_ROOT,并把build-tools、tools、platform-tools加入系统PATH,然后重启服务进程(如IIS)让环境变量生效。

3. 用Cordova命令定位缺失项

先在Process中执行cordova requirements android命令,查看具体的环境缺失情况,能更精准排查问题:

processStartInfo.Arguments = "run cordova requirements android";

执行后会输出详细的环境检查结果,明确告知哪项配置未达标。

4. 确认Gradle环境配置

确保GRADLE_HOME和GRADLE_HOME\bin已加入环境变量,或者允许Cordova使用项目目录下自动下载的Gradle版本(Cordova通常会根据项目需求自动适配对应Gradle版本)。

内容的提问来源于stack exchange,提问作者João Ferreira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:49:53