无法通过编程方式启动Appium服务器问题求助
Appium Service Builder启动服务器失败的排查方案
错误信息
io.appium.java_client.service.local.AppiumServerHasNotBeenStartedLocallyException: The local appium server has not been started. The given Node.js executable: C:\Program Files\nodejs\node.exe Arguments: [C:\Users[username]\AppData\Roaming\npm\node_modules\appium\build\lib\main.js, --port, 4723, --address, 127.0.0.1]
at io.appium.java_client.service.local.AppiumDriverLocalService.start(AppiumDriverLocalService.java:191)
相关代码
package MahiyarAutomation; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import org.testng.annotations.Test; import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.android.options.UiAutomator2Options; import io.appium.java_client.service.local.AppiumDriverLocalService; import io.appium.java_client.service.local.AppiumServiceBuilder; public class AppiumBasics { @Test public void AppiumTest() throws MalformedURLException { AppiumDriverLocalService service = new AppiumServiceBuilder().withAppiumJS(new File("C:\\Users\\mahiyarwadia\\AppData\\Roaming\\npm\\node_modules\\appium\\build\\lib\\main.js")) .withIPAddress("127.0.0.1").usingPort(4723).build(); service.start(); UiAutomator2Options options = new UiAutomator2Options(); options.setDeviceName ("MahiyarPhone"); options.setApp ("//Users//mahiyarwadia//eclipse-workspace//Appium//src//test//java//resources//ApiDemos-debug.apk"); } }
排查与解决步骤
1. 验证Node.js和Appium路径有效性
- 手动检查
C:\Program Files\nodejs\node.exe是否存在,打开命令行执行该路径,确认Node.js能正常启动。 - 检查
C:\Users\mahiyarwadia\AppData\Roaming\npm\node_modules\appium\build\lib\main.js文件是否存在。如果是Appium 2.x版本,main.js可能位于node_modules/appium/lib/main.js(无build目录),需调整路径。 - 直接用命令行运行Appium启动命令,验证是否能正常启动:
如果命令行启动失败,根据报错信息修复Appium安装或路径问题;如果能启动,说明代码配置存在问题。"C:\Program Files\nodejs\node.exe" "C:\Users\mahiyarwadia\AppData\Roaming\npm\node_modules\appium\build\lib\main.js" --port 4723
2. 检查端口占用情况
4723端口可能被其他程序占用,执行以下命令排查:
netstat -ano | findstr :4723
如果有结果,记录PID后打开任务管理器结束对应进程,或者修改代码中的端口号(比如usingPort(4724))。
3. 解决权限问题
右键点击IDE(如Eclipse),选择以管理员身份运行,避免因权限不足导致无法启动服务器。
4. 简化Service Builder配置
如果Appium已全局安装且加入系统PATH,可尝试自动查找Appium路径,去掉withAppiumJS()配置:
AppiumDriverLocalService service = new AppiumServiceBuilder() .withIPAddress("127.0.0.1") .usingPort(4723) .build();
5. 验证Appium全局安装状态
打开命令行执行appium -v,确认Appium能正常运行且版本正确。如果命令行运行Appium正常,但代码启动失败,重点检查代码中的路径配置。
额外提示
代码中App路径使用//Users//...是类Unix系统格式,若你使用Windows系统,需修改为Windows路径格式,比如:
options.setApp("C:\\Users\\mahiyarwadia\\eclipse-workspace\\Appium\\src\\test\\java\\resources\\ApiDemos-debug.apk");
内容的提问来源于stack exchange,提问作者Mahiyar Wadia
相关产品推荐
相关产品推荐

