Appium移动端自动化测试启动会话时报jvm.cfg无法打开错误如何解决
处理命令时发生未知的服务器端错误,原始错误为:无法验证'C:\Users\Thinkcenter\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-uiautomator2-server\apks\appium-uiautomator2-server-v4.21.1.apk'的签名,底层错误为:Error: could not open `G:\androidsdk\platform-tools\lib\jvm.cfg'
根因分析
- 核心错误是Android SDK的platform-tools组件调用Java运行环境失败,找不到
jvm.cfg配置文件,导致SDK自带的apksigner签名校验工具无法运行,最终Appium无法完成UIAutomator2服务APK的签名校验,会话启动失败 - 将Android SDK放在G盘的操作本身没有问题,报错和SDK存储位置无关,是环境变量优先级配置错误导致的
修复步骤
- 第一步:校验Java环境配置
打开cmd窗口执行java -version,确认输出正常的Java版本信息,没有报错。如果执行失败,先正确配置JAVA_HOME环境变量,指向本地JDK安装根目录,同时把%JAVA_HOME%\bin加到系统变量Path的最顶部。 - 第二步:调整Android SDK环境变量优先级
找到系统变量Path中的G:\androidsdk\platform-tools、G:\androidsdk\tools、G:\androidsdk\build-tools\对应版本号三个配置项,把这三个的顺序移动到所有Oracle/Java相关配置项的下方,避免SDK内置的精简JRE覆盖系统全局Java配置。 - 第三步:验证修复效果
打开新的cmd窗口执行apksigner --version,确认可以正常输出版本号无报错后,重启Appium服务,重新启动测试会话即可。 - 临时调试方案:如果紧急调试不想修改环境变量,可以手动把Appium目录下的uiautomator2-server APK安装到测试设备后,在Appium会话能力配置中添加
"skipServerInstallation": true跳过签名校验步骤。
内容的提问来源于stack exchange,提问作者Zaman10
相关产品推荐
相关产品推荐

