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

启动Appium报错未导出ANDROID_HOME或ANDROID_SDK_ROOT环境变量

问题场景

编写移动端自动化脚本时,计划通过代码方式启动Appium服务,后续在已打开的模拟器中运行自动化逻辑。
代码启动Appium的实现如下:

AppiumDriverLocalService service = AppiumDriverLocalService.buildService(new AppiumServiceBuilder().usingDriverExecutable(new File(nodePath)).withAppiumJS(new File(appiumPath)).withIPAddress("127.0.0.1") .usingPort(4723)); service.start();

当前现象:Appium服务启动成功(接口返回200响应),capabilities配置已加载完成,但运行自动化逻辑时抛出报错:

Error: Neither ANDROID_HOME nor ANDROID_SDK_ROOT environment variable was exported

解决方案

报错核心原因:通过代码方式拉起的Appium服务进程,未获取到Android SDK对应的路径环境变量,无法定位SDK相关执行文件。可通过以下任意一种方式修复:

  • 优先方案:在构建Appium服务时直接注入环境变量,不依赖系统全局环境配置,稳定性最高。参考实现代码如下:
import java.util.HashMap;
import java.util.Map;

// 替换为本地Android SDK的实际安装绝对路径
// Windows常见路径示例:C:\\Users\\你的用户名\\AppData\\Local\\Android\\Sdk
// Mac常见路径示例:/Users/你的用户名/Library/Android/sdk
String androidSdkAbsolutePath = "替换为你本地SDK实际路径";
Map<String, String> appiumEnv = new HashMap<>(System.getenv());
// 同时配置两个SDK路径变量,兼容不同版本Appium的读取逻辑
appiumEnv.put("ANDROID_HOME", androidSdkAbsolutePath);
appiumEnv.put("ANDROID_SDK_ROOT", androidSdkAbsolutePath);

AppiumDriverLocalService service = AppiumDriverLocalService.buildService(
        new AppiumServiceBuilder()
                .usingDriverExecutable(new File(nodePath))
                .withAppiumJS(new File(appiumPath))
                .withIPAddress("127.0.0.1")
                .usingPort(4723)
                // 传入携带SDK配置的环境变量
                .withEnvironment(appiumEnv)
);
service.start();
  • 系统环境变量修复方案:如果不想修改代码注入逻辑,先确认系统全局已正确配置ANDROID_HOME和ANDROID_SDK_ROOT两个环境变量,变量值指向SDK根目录,同时将SDK下的platform-tools、build-tools、emulator目录加入系统PATH。配置完成后必须彻底关闭运行代码的IDE/终端进程再重新打开,避免进程继承旧的无SDK配置的环境变量,导致拉起的Appium服务依然读不到路径。
  • 路径校验:配置完成后确认SDK路径下存在platform-tools、build-tools、emulator三个核心子目录,避免路径填写错误指向非SDK目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:06:33