【问题标题】:Failed to start an Appium session, err was: Error: Command failed:无法启动 Appium 会话,错误为:错误:命令失败:
【发布时间】:2017-07-01 11:19:55
【问题描述】:

我使用了 windows 和 Eclips。

我为测试而写的以下课程:

公共类TestApp

{ AppiumDriver驱动;

@Test
public void testapp()  throws MalformedURLException, InterruptedException
{
    File app =new File(System.getProperty("user.dir")+"\\apks\\sigiriya-debug.apk");

      // DesiredCapabilities capabilities = new DesiredCapabilities();
      DesiredCapabilities capabilities =DesiredCapabilities.android();
      //capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
      capabilities.setCapability("deviceName","google-pixel-FA6C10301834");
      capabilities.setCapability("platformVersion", "7.1.1");
      capabilities.setCapability("platformName","Android");
      capabilities.setCapability("app", app.getAbsolutePath());


      //  capabilities.setCapability("appPackage", "com.whatsapp");
      //  capabilities.setCapability("appActivity", "com.whatsapp.Main");
      //  dr = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
      driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
     // driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
      driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);


      // clicking
      Thread.sleep(10000);

}
  } 

当我运行代码时,Apk 已安装到我的手机中。但测试失败,并在 appium 控制台中出现以下错误日志

Appium 中的日志:

info: --> POST /wd/hub/session {"desiredCapabilities":{"app":"C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk ","platformVersion":"7.1.1","browserName":"android","platformName":"Android","version":"","deviceName":"google-pixel-FA6C10301834","platform" :“安卓”}} 信息:客户端用户代理字符串:Apache-HttpClient/4.3.3 (java 1.5) info: [debug] 提供了以下所需功能,但 appium 无法识别。它们将被传递到此服务器上运行的任何其他服务。 :版本,平台 信息:[调试] 没有 appActivity 所需的功能或服务器参数。从 apk 解析。 信息:[调试] 没有 appPackage 所需的功能或服务器参数。从 apk 解析。 信息:[调试] 使用来自所需上限的本地应用程序:C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk 信息:[调试] 创建新的 appium 会话 622e973b-f97e-4961-8c0b-c79e13067803 信息:启动 android appium 信息:[调试] 获取 Java 版本 信息:Java 版本为:1.8.0_101 info: [debug] 检查 adb 是否存在 信息:[调试] 使用来自 C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe 的 adb 信息:[调试] 从应用程序清单解析包和活动 info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 的 aapt 信息:[调试] 从清单中提取包和启动活动。 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 转储徽章 C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool .testmob\apks\sigiriya-debug.apk 信息:[调试] 徽章包:com.pearsoned.sigiriya 信息:[调试] 徽章行为:com.pearsoned.sigiriya.view.activity.ActivityDecksView 信息:[调试] 解析的包和活动是:com.pearsoned.sigiriya/com.pearsoned.sigiriya.view.activity.ActivityDecksView 信息:[调试] 使用快速重置?真的 信息:[调试] 为会话准备设备 info: [debug] 检查应用程序是否实际存在 信息:检索设备 信息:[调试] 尝试查找已连接的 android 设备 信息:[调试]正在连接设备... 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe 设备 信息:[调试] 1 个设备已连接 信息:找到设备FA6C10301834 信息:[调试] 将设备 ID 设置为 FA6C10301834 信息:[调试] 等待设备准备好并响应 shell 命令(超时 = 5) info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 等待设备 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "echo 'ready'" 信息:[调试] 启动 logcat 捕获 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 25 信息:设备 API 级别为:25 信息:[调试]为语言提取字符串:默认 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "getprop persist.sys.language" 信息:[调试] 当前设备 persist.sys.language: 信息:[调试] java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "C:\Users\uwickdi\workspace\Mobile \eselenium.liverPool.testmob\apks\sigiriya-debug.apk" "C:\Users\uwickdi\AppData\Local\Temp\com.pearsoned.sigiriya" info: [debug] 从转换后的 strings.json 中读取字符串 信息:[调试]将语言设置为默认值 info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 push "C:\Users\uwickdi\AppData\Local\Temp\com. pearsoned.sigiriya\strings.json" /data/local/tmp info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 的 aapt 信息:[调试] 从清单中检索进程。 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 转储 xmltree C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool .testmob\apks\sigiriya-debug.apk AndroidManifest.xml 信息:[调试] 将应用进程设置为:com.pearsoned.sigiriya 信息:[调试] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序 信息:[调试] 检查 C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk 的应用程序证书。 信息:[调试] 执行 cmd:java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar" C:\Users\uwickdi\workspace\Mobile\ eselenium.liverPool.testmob\apks\sigiriya-debug.apk 信息:[调试] 应用程序已签名。 信息:[调试] Zip 对齐 C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk info: [debug] 检查 zipalign 是否存在 信息:[调试] 使用 C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\zipalign.exe 中的 zipalign 信息:[调试] Zip-aligning apk。 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\build-tools\25.0.2\zipalign.exe -f 4 C:\Users\uwickdi\workspace\Mobile\eselenium。 liverPool.testmob\apks\sigiriya-debug.apk C:\Users\uwickdi\AppData\Local\Temp\117113-3596-12b9r95\appium.tmp 信息:[调试] 应用程序的 MD5 为 8ded8f0bf024cef65fdef392e13505bb 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "ls /data/local/tmp/8ded8f0bf024cef65fdef392e13505bb.apk" 信息:[调试] 获取 com.pearsoned.sigiriya 的安装状态 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 25 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "pm list packages -3 com.pearsoned.sigiriya" 信息:[调试] 应用程序已安装 信息:应用程序已安装,正在重置应用程序 信息:[调试]运行快速重置(停止和清除) 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "am force-stop com.pearsoned.sigiriya" 信息:[调试] 执行 cmd:C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "pm clear com.pearsoned.sigiriya" 信息:[调试] 转发系统:4724 到设备:4724 info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 forward tcp:4724 tcp:4724 信息:[调试] 将 appium 引导程序推送到设备... info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 push "C:\Program Files (x86)\Appium\node_modules\appium\构建\android_bootstrap\AppiumBootstrap.jar" /data/local/tmp/ 信息:[调试] 将设置 apk 推送到设备... info: [debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 install "C:\Program Files (x86)\Appium\node_modules\appium\构建\settings_apk\settings_apk-debug.apk" 信息:[调试] 停止 logcat 捕获 信息:[调试] Logcat 以代码 null 终止,信号 SIGTERM info: [debug] 发送关闭命令,等待 UiAutomator 停止... 警告:UiAutomator 没有足够快地关闭,称它消失了 信息:[调试] 清理 android 对象 信息:[调试] 清理 appium 会话 信息:[调试] 错误:命令失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834安装“C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk” 无法安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS:尝试重新安装 io.appium.settings 而不先卸载。]

at ChildProcess.exithandler (child_process.js:751:12)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1016:16)
at Process.ChildProcess._handle.onexit (child_process.js:1088:5)

info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Command failed: C:\Windows \system32\cmd.exe /s /c \"C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 install \"C:\Program Files (x86)\Appium \node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"\n未能安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS : 尝试重新安装 io.appium.settings 而不先卸载。]\r\n)","killed":false,"code":1,"signal":null,"cmd":"C:\Windows \system32\cmd.exe /s /c \"C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 install \"C:\Program Files (x86)\Appium \node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"","origValue":"命令失败:C:\Windows\system32\cmd.exe /s /c \"C:\Users\uwickdi \AppData\Local\Android\sdk\platform-tools\adb .exe -s FA6C10301834 install \"C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"\n安装C:\Program Files (x86)\Appium失败\node_modules\appium\build\settings_apk\settings_apk-debug.apk: 失败 [INSTALL_FAILED_ALREADY_EXISTS: 尝试重新安装 io.appium.settings 而不先卸载。]\r\n"},"sessionId":null} 错误:无法启动 Appium 会话,错误是:错误:命令失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools \adb.exe -s FA6C10301834 install "C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk"" 无法安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS:尝试重新安装 io.appium.settings 而不先卸载。]

信息:

感谢您帮助解决此问题。 谢谢你

【问题讨论】:

    标签: android appium


    【解决方案1】:

    根据您看到的错误,请确认您的 APK 文件未签名。 其次,错误如下

    C:\Users\uwickdi\workspace\Mobile\eselenium.liverPool.testmob\apks\sigiriya-debug.apk C:\Users\uwickdi\AppData\Local\Temp\117113-3596-12b9r95\appium.tmp 信息:[调试] 应用程序的 MD5 为 8ded8f0bf024cef65fdef392e13505bb 信息: [调试] 执行命令: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 外壳“ls /data/local/tmp/8ded8f0bf024cef65fdef392e13505bb.apk”信息:[调试] 获取 com.pearsoned.sigiriya 信息的安装状态:[调试] 获取设备 API 级别信息:[debug] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 外壳“getprop ro.build.version.sdk”信息:[调试] 设备 处于 API 级别 25 信息:[调试] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell“pm list packages -3 com.pearsoned.sigiriya”信息: [debug] App is installed info: App is already installed,正在重置应用 信息:[调试]运行快速重置(停止和清除)信息:[调试] 执行命令: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 shell "am force-stop com.pearsoned.sigiriya" 信息: [调试] 执行命令: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 外壳“pm clear com.pearsoned.sigiriya”信息:[调试] 转发系统:4724 到设备:4724 信息:[调试] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 forward tcp:4724 tcp:4724 info: [debug] Pushing appium 引导到设备...信息:[调试] 执行 cmd: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 推“C:\Program Files (x86)\Appium\node_modules\appium\build\android_bootstrap\AppiumBootstrap.jar" /data/local/tmp/ 信息:[调试] 将设置 apk 推送到设备...信息: [调试] 执行命令: C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 安装“C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk" 信息:[调试] 停止 logcat 捕获信息:[调试] Logcat 终止 代码为空,信号 SIGTERM 信息:[debug] 发送关机命令, 等待 UiAutomator 停止...警告:UiAutomator 没有关闭 足够快,称之为消失信息:[调试]清理android对象 信息:[调试]清理appium会话信息:[调试]错误:命令 失败:C:\Windows\system32\cmd.exe /s /c "C:\Users\uwickdi\AppData\Local\Android\sdk\platform-tools\adb.exe -s FA6C10301834 安装“C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk"" 安装 C:\Program Files 失败 (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:

    失败 [INSTALL_FAILED_ALREADY_EXISTS:尝试重新安装

    io.appium.settings 无需先卸载。]

    请注意错误消息中的最后两行。 在运行代码之前卸载原始应用程序。所以可以在开发模式下重新安装应用程序。

    【讨论】:

    • 在运行课程之前,我从手机中删除了应用程序,并且根据开发人员的说法,APK 未签名。运行后代码 apk 已安装到手机,但测试失败。
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 2021-03-18
    • 2015-04-23
    • 2015-06-04
    • 2016-02-15
    • 2023-03-13
    • 1970-01-01
    • 2021-11-30
    相关资源
    最近更新 更多