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

启动Appium Server时崩溃报NullPointerException问题求助

Appium DriverLocalService启动时NullPointerException问题排查与解决

针对你遇到的service.start()抛出NullPointerException(原因是this.process为null)的问题,下面是几个实际可行的排查和解决步骤:

1. 验证Appium JS文件路径有效性

你代码里指定的Appium主文件路径可能已失效:

  • 手动前往C:\Users\david\AppData\Roaming\npm\node_modules\appium\build\lib\目录,确认main.js是否存在。很多新版本Appium不再使用build目录,主文件路径可能变为node_modules/appium/lib/main.js。
  • 打开命令行,直接执行node "你的Appium JS路径" -p 4723 -a 130.127.2.24,如果命令报错,说明路径肯定有问题,需修正代码中的文件路径。

2. 检查端口与IP可用性

  • 端口4723可能被其他进程占用:执行netstat -ano | findstr 4723,若有结果,杀掉对应PID进程,或更换未被占用的端口(比如4724)。
  • 尝试将IP换成localhost或127.0.0.1启动服务,排除IP绑定失败的问题。若换IP后能正常启动,说明原IP可能不是本机当前可用地址,用ipconfig确认本机实际IP后再调整。

3. 修正代码潜在笔误

你的代码里newAppiumServiceBuilder()缺少空格,正确写法应为new AppiumServiceBuilder()——即便你说之前运行正常,也可能是输入时的笔误,这个语法错误会导致构建的服务对象异常,进而引发启动失败。

4. 避免重复启动与进程残留

因为代码在@BeforeMethod中,每个测试方法都会执行一次启动逻辑,如果上一次的服务未正常停止,会导致新启动失败:

  • 在@AfterMethod中添加服务停止逻辑,确保每次测试后清理进程:
@AfterMethod
public void tearDown() {
    if (service != null && service.isRunning()) {
        service.stop();
    }
}

5. 重置Appium环境

如果以上步骤均无效,可能是Appium缓存或安装文件损坏:

  • 执行npm uninstall -g appium卸载全局Appium,再重新安装你之前使用的稳定版本(比如npm install -g appium@1.22.3),规避新版本兼容问题。
  • 重启电脑,清理系统临时文件后再测试。

修改后的示例代码:

File appiumJS = new File("C:\\Users\\david\\AppData\\Roaming\\npm\\node_modules\\appium\\lib\\main.js");
if (!appiumJS.exists()) {
    throw new RuntimeException("Appium主文件不存在,请检查路径");
}
AppiumDriverLocalService service = new AppiumServiceBuilder()
        .withAppiumJS(appiumJS)
        .withIPAddress("127.0.0.1")
        .usingPort(4723)
        .build();
service.start();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 18:00:24