Appium:UiAutomator在成功发布前退出

时间:2016-02-05 10:48:53

标签: appium

  

使用以下命令启动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   info:欢迎来到Appium v​​1.4.16(REV ae6877eff263066b26328d457bd285c0cc62430d)   info:Appium REST http接口监听器在127.0.0.1:4723上启动   info:[debug]非默认服务器args:{"地址":" 127.0.0.1"," logNoColors":true," platformName&# 34;:" Android和#34;" platformVersion":" 23"" automationName":" Appium"}   info:Console LogLevel:debug   信息: - > POST / wd / hub / session {" desiredCapabilities":{" appPackage":" com.Honkampkrueger.hk"," appActivity":& #34; .MainActivity""应用":" C:\用户\ kuldeep.sahu \工作空间\ AppiumIntro \ SRC \ honkamp.apk"" browserName&# 34;:""," platformName":" Android"," deviceName":" Android模拟器",& #34;版本":" 4.4.2"}}   info:客户端用户代理字符串:Apache-HttpClient / 4.5.1(Java / 1.8.0_71)   info:[debug]提供了以下所需功能,但appium无法识别。它们将被传递给在此服务器上运行的任何其他服务。 :版本   info:[debug]使用所需大写的本地应用程序:C:\ Users \ kuldeep.sahu \ workspace \ AppiumIntro \ Src \ honkamp.apk   info:[debug]创建新的appium会话f2eb01fe-7b8c-4e7c-89c6-5d776471a569   info:启动android appium   info:[debug]获取Java版本   info:Java版本是:1.8.0_71   info:[debug]检查adb是否存在   info:[debug]使用来自C:\ Program Files \ SDK \ platform-tools \ adb.exe的adb   info:[debug]使用快速重置?真正   info:[debug]准备会话设备   info:[debug]检查app是否确实存在   info:检索设备   info:[debug]试图找到一个连接的Android设备   info:[debug]获取连接设备...   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe"设备   info:[debug] 1个设备已连接   info:找到设备模拟器-5554   info:[debug]将设备ID设置为emulator-5554   info:[debug]等待设备准备就绪并响应shell命令(timeout = 5)   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554等待设备   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" echo' ready'"   info:[debug]启动logcat捕获   info:[debug]获取设备API级别   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" getprop ro.build.version.sdk"   info:[debug]设备处于API级别19   info:设备API级别为:19   info:[debug]为语言提取字符串:default   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" getprop persist.sys.language"   info:[debug]当前设备persist.sys.language:en   info:[debug] java -jar" C:\ Program Files(x86)\ Appium \ node_modules \ appium \ node_modules \ appium-adb \ _jars \ appium_apk_tools.jar" " stringsFromApk" " C:\用户\ kuldeep.sahu \工作空间\ AppiumIntro \ SRC \ honkamp.apk" " C:\用户\ KULDEE〜1.SAH \应用程序数据\本地\ TEMP \ com.Honkampkrueger.hk"恩   info:[debug]没有strings.xml用于语言' en',获取默认的strings.xml   info:[debug] java -jar" C:\ Program Files(x86)\ Appium \ node_modules \ appium \ node_modules \ appium-adb \ _jars \ appium_apk_tools.jar" " stringsFromApk" " C:\用户\ kuldeep.sahu \工作空间\ AppiumIntro \ SRC \ honkamp.apk" " C:\用户\ KULDEE〜1.SAH \应用程序数据\本地\ TEMP \ com.Honkampkrueger.hk"   info:[debug]从转换的strings.json中读取字符串   info:[debug]将语言设置为默认值   info:[debug]执行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" /数据/本地/ tmp目录   info:[debug]检查aapt是否存在   info:[debug]使用来自C:\ Program Files \ SDK \ build-tools \ 23.0.2 \ aapt.exe的aapt   info:[debug]从清单中检索进程。   info:[debug]执行cmd:" C:\ Program Files \ SDK \ build-tools \ 23.0.2 \ aapt.exe" dump xmltree C:\ Users \ kuldeep.sahu \ workspace \ AppiumIntro \ Src \ honkamp.apk AndroidManifest.xml   info:[debug]将应用程序进程设置为:com.Honkampkrueger.hk   info:[debug]不卸载应用程序,因为服务器未启动--full-reset   info:[debug]检查C:\ Users \ kuldeep.sahu \ workspace \ AppiumIntro \ Src \ honkamp.apk的应用程序证书。   info:[debug]执行cmd:java -jar" C:\ Program Files(x86)\ Appium \ node_modules \ appium \ node_modules \ appium-adb \ jars \ verify.jar" C:\ Users \用户kuldeep.sahu \工作空间\ AppiumIntro \ SRC \ honkamp.apk   info:[debug]应用程序已签名。   info:[debug] Zip-aligning C:\ Users \ kuldeep.sahu \ workspace \ AppiumIntro \ Src \ honkamp.apk   info:[debug]检查zipalign是否存在   info:[debug]在C:\ Program Files \ SDK \ build-tools \ 23.0.2 \ zipalign.exe中使用zipalign   info:[debug] Zip-aligning apk。   info:[debug]执行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   info:[debug] app的MD5是91f72bc7e64a758cdb9d0b8414bd853c   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" ls /data/local/tmp/91f72bc7e64a758cdb9d0b8414bd853c.apk"   info:[debug]获取com.Honkampkrueger.hk的安装状态   info:[debug]获取设备API级别   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" getprop ro.build.version.sdk"   info:[debug]设备处于API级别19   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" pm list packages -3 com.Honkampkrueger.hk"   info:[debug]未安装App   信息:安装应用程序   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" mkdir -p / data / local / tmp /"   info:[debug]删除任何旧的apks   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" ls /data/local/tmp/*.apk"   info:[debug]在/data/local/tmp/91f72bc7e64a758cdb9d0b8414bd853c.apk找到一个想要保存的apk   info:[debug]无法找到要删除的apks   info:[debug]卸载com.Honkampkrueger.hk   info:[debug]执行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卸载com.Honkampkrueger.hk   信息:[调试]应用程序没有卸载,也许它不在设备上?   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" pm install -r /data/local/tmp/91f72bc7e64a758cdb9d0b8414bd853c.apk"   info:[debug]转发系统:4724到设备:4724   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 forward tcp:4724 tcp:4724   info:[debug]将appium bootstrap推送到设备...   info:[debug]执行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" /数据/本地的/ tmp /   info:[debug]将设置apk推送到设备...   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554安装" C:\ Program Files(x86)\ Appium \ node_modules \ appium \ build \ settings_apk \ settings_apk-debug.apk"   info:[debug]将解锁帮助应用程序推送到设备...   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554安装" C:\ Program Files(x86)\ Appium \ node_modules \ appium \ build \ unlock_apk \ unlock_apk-debug.apk"   信息:启动应用程序   info:[debug]试图杀死所有' uiautomator'流程   info:[debug]使用' uiautomator'获取所有流程   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" ps' uiautomator'"   info:[debug]找不到匹配的进程   info:[debug]运行bootstrap   info:[debug]产生: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 false   info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_RESULT:shortMsg = java.lang.NullPointerException   info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_RESULT:longMsg = null   info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_CODE:0   info:[debug] UiAutomator退出   info:[debug]执行cmd:" C:\ Program Files \ SDK \ platform-tools \ adb.exe" -s emulator-5554 shell" echo' ping'"   info:[debug]试图卸载应用程序   info:[debug]不卸载应用程序,因为服务器未启动--full-reset   info:[debug]清理android对象   info:[debug]清理appium会话   错误:UiAutomator在成功启动之前退出   错误:无法启动Appium会话,错误是:错误:UiAutomator在成功启动之前退出   info:[debug]错误:UiAutomator在成功启动之前退出       在[object Object]。 (C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android.js:205:23)       在[object Object]。 (C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android-hybrid.js:249:5)       at Object.async.eachSeries(C:\ Program Files(x86)\ Appium \ node_modules \ appium \ node_modules \ async \ lib \ async.js:142:20)       at [object Object] .androidHybrid.stopChromedriverProxies(C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android-hybrid.js:233:9)       在[object Object]。 (C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android.js:200:10)       在[object Object]。 (C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android.js:222:9)       at [object Object] .androidCommon.uninstallApp(C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android-common.js:478:5)       在[object Object]。 (C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ android.js:220:12)       在[object Object]。 (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       在[object Object]。 (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)       在maybeClose(child_process.js:1016:16)       在Process.ChildProcess._handle.onexit(child_process.js:1088:5)   info:[debug]响应客户错误:{" status":33," value":{" message":"新会话可以不被创造。 (原始错误:UiAutomator在成功启动之前退出)"," origValue":" UiAutomator在成功启动之前退出"}," sessionId":null }   info:< - POST / wd / hub / session 500 46111.400 ms - 218

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

任何人都有此解决方案,因为我的正在运行的模拟器启动非常慢。

3 个答案:

答案 0 :(得分:1)

  

UiAutomator在成功启动错误之前退出:失败   开始一个Appium会话,错误是:错误:UiAutomator在它之前退出   成功启动信息:[debug]错误:UiAutomator退出之前   在[object Object]成功启动。 (C:\ Program Files   (86)\ Appium \ node_modules \ appium \ lib中\设备\机器人\ android.js:205:23)   在[object Object]。

这表明由于没有创建Appium会话,UIAutomator没有启动。您的IDE上的[SessionNotCreatedException] 重新启动adb服务器和appium服务应该会帮助你。

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

答案 1 :(得分:0)

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

我们有一个类似的问题,当我们开始使用appium,android studio和selenium webdriver自动化一个简单的移动应用程序,经过这么多搜索并查看各种appium支持票据后,我们发现它是一个bug,他们有给予替代修复并继续。

您必须在以下文件中的几个地方更改代码: 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

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

答案 2 :(得分:0)

您无法并行运行UIAutomator和Appium服务器,这是已知问题。在运行UIAutomator之前,请确保您的Appium服务器已停止,然后再试一次。这应该有用。