【问题标题】:Appium : UiAutomator quit before it successfully launchedAppium : UiAutomator 在成功启动之前退出
【发布时间】:2016-05-15 07:34:13
【问题描述】:

使用命令启动 Appium 服务器:C:\Program Files (x86)\Appium\node.exe lib\server\main.js --address 127.0.0.1 --port 4723 --platform-name Android --platform-版本 23 --automation-name Appium --log-no-color 信息:欢迎使用 Appium v​​1.4.16 (REV ae6877eff263066b26328d457bd285c0cc62430d) 信息:Appium REST http 接口监听器开始于 127.0.0.1:4723 信息:[调试]非默认服务器参数:{“address”:“127.0.0.1”,“logNoColors”:true,“platformName”:“Android”,“platformVersion”:“23”,“automationName”:“Appium "} 信息:控制台日志级别:调试 info: --> POST /wd/hub/session {"desiredCapabilities":{"appPackage":"com.Honkampkrueger.hk","appActivity":".MainActivity","app":"C:\Users\kuldeep .sahu\workspace\AppiumIntro\Src\honkamp.apk","browserName":"","platformName":"Android","deviceName":"Android Emulator","version":"4.4.2"}} 信息:客户端用户代理字符串:Apache-HttpClient/4.5.1 (Java/1.8.0_71) info: [debug] 提供了以下所需功能,但 appium 无法识别。它们将被传递到此服务器上运行的任何其他服务。 : 版本 信息:[调试] 使用来自所需上限的本地应用程序:C:\Users\kuldeep.sahu\workspace\AppiumIntro\Src\honkamp.apk 信息:[调试] 创建新的 appium 会话 f2eb01fe-7b8c-4e7c-89c6-5d776471a569 信息:启动 android appium 信息:[调试] 获取 Java 版本 信息:Java 版本为:1.8.0_71 info: [debug] 检查 adb 是否存在 信息:[调试] 使用 C:\Program Files\SDK\platform-tools\adb.exe 中的 adb 信息:[调试] 使用快速重置?真的 信息:[调试] 为会话准备设备 info: [debug] 检查应用程序是否实际存在 信息:检索设备 信息:[调试] 尝试查找已连接的 android 设备 信息:[调试]正在连接设备... 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”设备 信息:[调试] 1 个设备已连接 信息:找到设备模拟器-5554 信息:[调试] 将设备 ID 设置为 emulator-5554 信息:[调试] 等待设备准备好并响应 shell 命令(超时 = 5) 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 等待设备 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “echo 'ready'” 信息:[调试] 启动 logcat 捕获 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “getprop ro.build.version.sdk” 信息:[调试] 设备处于 API 级别 19 信息:设备 API 级别为:19 信息:[调试]为语言提取字符串:默认 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “getprop persist.sys.language” 信息:[调试]当前设备persist.sys.language:en 信息:[调试] java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "C:\Users\kuldeep.sahu\workspace \AppiumIntro\Src\honkamp.apk" "C:\Users\KULDEE~1.SAH\AppData\Local\Temp\com.Honkampkrueger.hk" zh 信息:[调试] 语言“en”没有 strings.xml,获取默认 strings.xml 信息:[调试] java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "C:\Users\kuldeep.sahu\workspace \AppiumIntro\Src\honkamp.apk" "C:\Users\KULDEE~1.SAH\AppData\Local\Temp\com.Honkampkrueger.hk" info: [debug] 从转换后的 strings.json 中读取字符串 信息:[调试]将语言设置为默认值 信息:[调试] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 push "C:\Users\KULDEE~1.SAH\AppData\Local\Temp\com .Honkampkrueger.hk\strings.json" /data/local/tmp info: [debug] 检查 aapt 是否存在 信息:[调试] 使用 C:\Program Files\SDK\build-tools\23.0.2\aapt.exe 中的 aapt 信息:[调试] 从清单中检索进程。 信息:[调试] 执行 cmd:“C:\Program Files\SDK\build-tools\23.0.2\aapt.exe”转储 xmltree C:\Users\kuldeep.sahu\workspace\AppiumIntro\Src\honkamp.apk AndroidManifest .xml info: [debug] 将应用进程设置为:com.Honkampkrueger.hk 信息:[调试] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序 信息:[调试] 检查 C:\Users\kuldeep.sahu\workspace\AppiumIntro\Src\honkamp.apk 的应用程序证书。 信息:[调试] 执行 cmd:java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar" C:\Users\kuldeep.sahu\workspace\ AppiumIntro\Src\honkamp.apk 信息:[调试] 应用程序已签名。 信息:[调试] Zip 对齐 C:\Users\kuldeep.sahu\workspace\AppiumIntro\Src\honkamp.apk info: [debug] 检查 zipalign 是否存在 信息:[调试] 使用 C:\Program Files\SDK\build-tools\23.0.2\zipalign.exe 中的 zipalign 信息:[调试] Zip-aligning apk。 信息:[调试] 执行 cmd:“C:\Program Files\SDK\build-tools\23.0.2\zipalign.exe”-f 4 C:\Users\kuldeep.sahu\workspace\AppiumIntro\Src\honkamp.apk C:\Users\KULDEE~1.SAH\AppData\Local\Temp\11615-3480-14zot2k\appium.tmp 信息:[调试] 应用程序的 MD5 为 91f72bc7e64a758cdb9d0b8414bd853c 信息:[调试] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 shell "ls /data/local/tmp/91f72bc7e64a758cdb9d0b8414bd853c.apk" 信息:[调试] 获取 com.Honkampkrueger.hk 的安装状态 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “getprop ro.build.version.sdk” 信息:[调试] 设备处于 API 级别 19 info: [debug] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 shell "pm list packages -3 com.Honkampkrueger.hk" 信息:[调试] 未安装应用程序 信息:安装应用程序 信息:[调试] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 shell "mkdir -p /data/local/tmp/" 信息:[调试] 删除任何旧的 apk 信息:[调试] 执行 cmd:"C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 shell "ls /data/local/tmp/*.apk" 信息:[debug] 找到了一个我们想要保留在 /data/local/tmp/91f72bc7e64a758cdb9d0b8414bd853c.apk 的 apk 信息:[调试] 找不到要删除的任何 apk 信息:[调试] 卸载 com.Honkampkrueger.hk 信息:[调试] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 shell "am force-stop com.Honkampkrueger.hk" info: [debug] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 uninstall com.Honkampkrueger.hk 信息:[调试]应用程序未卸载,也许它不在设备上? 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “pm install -r /data/local/tmp/91f72bc7e64a758cdb9d0b8414bd853c.apk” 信息:[调试] 转发系统:4724 到设备:4724 info: [debug] 执行 cmd: "C:\Program Files\SDK\platform-tools\adb.exe" -s emulator-5554 forward tcp:4724 tcp:4724 信息:[调试] 将 appium 引导程序推送到设备... 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 push “C:\Program Files (x86)\Appium\node_modules\appium\build\android_bootstrap \AppiumBootstrap.jar" /data/local/tmp/ 信息:[调试] 将设置 apk 推送到设备... 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 install “C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk \settings_apk-debug.apk" 信息:[调试]将解锁帮助应用程序推送到设备... 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 install “C:\Program Files (x86)\Appium\node_modules\appium\build\unlock_apk \unlock_apk-debug.apk" 信息:启动应用程序 信息:[调试] 试图杀死所有“uiautomator”进程 信息:[调试]使用“uiautomator”获取所有进程 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “ps 'uiautomator'” 信息:[调试]未找到匹配的进程 信息:[调试]运行引导 信息:[调试] 生成:C:\Program Files\SDK\platform-tools\adb.exe -s emulator-5554 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap -e pkg com.Honkampkrueger .hk -e disableAndroidWatchers 假 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_RESULT:shortMsg=java.lang.NullPointerException 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_RESULT:longMsg=null 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_CODE:0 信息:[调试] UiAutomator 已退出 信息:[调试] 执行 cmd:“C:\Program Files\SDK\platform-tools\adb.exe”-s emulator-5554 shell “echo 'ping'” 信息:[调试] 尝试卸载应用程序 信息:[调试] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序 信息:[调试] 清理 android 对象 信息:[调试] 清理 appium 会话 错误:UiAutomator 在成功启动之前退出 错误:无法启动 Appium 会话,错误是:错误:UiAutomator 在成功启动之前退出 信息:[调试]错误:UiAutomator在成功启动之前退出 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js:205:23) 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-hybrid.js:249:5) 在 Object.async.eachSeries (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\async\lib\async.js:142:20) 在 [object Object].androidHybrid.stopChromedriverProxies (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-hybrid.js:233:9) 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js:200:10) 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js:222:9) 在 [object Object].androidCommon.uninstallApp (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android-common.js:478:5) 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js:220:12) 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\lib\devices\android\android.js:229:11) 在 C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:901:7 在 [对象对象]。 (C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js:180:9) 在 ChildProcess.exithandler (child_process.js:742:7) 在 ChildProcess.emit (events.js:110:17) 在可能关闭(child_process.js:1016:16) 在 Process.ChildProcess._handle.onexit (child_process.js:1088:5) info: [debug] Responding to client with error: {"status":33,"value":{"message":"无法创建新会话。(原始错误:UiAutomator 在成功启动之前退出)"," origValue":"UiAutomator 在成功启动前退出"},"sessionId":null} 信息:

错误:线程“主”org.openqa.selenium.SessionNotCreatedException 中的异常:无法创建新会话。 (原始错误:UiAutomator 在成功启动之前退出)(警告:服务器未提供任何堆栈跟踪信息)。

任何人都可以解决这个问题,因为我正在运行的模拟器启动速度很慢。

【问题讨论】:

  • 如果没有slow to launch,您最后的每个问题似乎都是不完整的。在这种情况下,您可能希望获得更好的硬件配置。

标签: appium


【解决方案1】:

UiAutomator 在成功启动之前退出错误:无法 启动 Appium 会话,错误是:错误:UiAutomator 在它之前退出 成功启动 info: [debug] Error: UiAutomator quit before it 在 [object Object] 成功启动。 (C:\程序文件 (x86)\Appium\node_modules\appium\lib\devices\android\android.js:205:23) 在 [object 对象]。

这表明 UIAutomator 没有启动是因为没有创建 Appium 会话。 [SessionNotCreatedException 在您的 IDE 上] 重启 adb server 和 appium serve 对你有帮助。

在此之前,您还可以尝试使用 shell 运行 UIAutomator 以验证它是否在您的机器上正常工作。

【讨论】:

    【解决方案2】:

    如果您使用 Appium 1.4 + 版本自动化 android (7.0 / N / Nougat ) 版本,此问题仍然存在。您必须进行一些更改才能使其正常工作。

    我们遇到了类似的问题,当我们开始使用 appium、android studio 和 selenium webdriver 自动化一个简单的移动应用程序时,经过大量搜索并查看了各种 appium 支持票,我们发现这是一个错误,他们有给定一个替代方法来修复并继续。

    您必须在以下文件的几个地方更改代码: C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js

    这些详细信息已在以下文章中列出: http://www.testingtools.co/appium/error-command-failed-adb-exe-s-emulator-5554-shell-ps-uiautomator

    希望对您有所帮助,如果您有任何疑问,您也可以将它们以 cmets 的形式发布到博客文章中。

    【讨论】:

      【解决方案3】:

      您不能并行运行 UIAutomator 和 Appium 服务器,这是已知问题。确保在运行 UIAutomator 之前停止 Appium 服务器,然后重试。这应该可以。

      【讨论】:

        猜你喜欢
        • 2015-05-23
        • 2013-11-25
        • 1970-01-01
        • 2019-06-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-02
        • 2019-12-22
        相关资源
        最近更新 更多