【发布时间】:2019-10-12 16:33:55
【问题描述】:
任何人都可以帮助我我是使用 Appium 进行 Android 测试的新手,我正在尝试在 AVD 中打开应用程序并安装该应用程序,但随后出现错误“无法创建新会话。(原始错误:命令失败: )","killed":false,"code":1,"signal":null,"origValue":"命令失败:"},"sessionId":null}
提前感谢您的帮助
尝试只提供功能。setCapability("appActivity", ".MainActivity");
'''
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "/Apps/src/");
File app = new File(appDir, "ChatApp-release.apk");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability("deviceName", "emulator-5554");
capabilities.setCapability("platformVersion", "7.1.1");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("app", app.getAbsolutePath());
capabilities.setCapability("appPackage", "com.aaa.charla");
capabilities.setCapability("appActivity", "com.aaa.xxx.MainActivity");
driver = new AndroidDriver(new URL("https://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
Thread.sleep(10000);
driver.quit();
以下是调试日志:
信息:控制台日志级别:调试 信息:--> POST /wd/hub/session {"desiredCapabilities":{"app":"D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\Appium\apk\ChatApp-master-0.9.35.1195-release.apk" "appPackage":"com.odysseyinc.charla","appActivity":"com.odyssey.chatapp.MainActivity","newCommandTimeout":"10000","platformName":"Android","version":"7.1. 1","deviceName":"emulator-5554"}} 信息:客户端用户代理字符串:Apache-HttpClient/4.5.2 (Java/1.8.0_162) info: [debug] 提供了以下所需功能,但 appium 无法识别。它们将被传递到此服务器上运行的任何其他服务。 : 版本 信息:[调试] 使用来自所需上限的本地应用程序:D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\Appium\apk\ChatApp-master-0.9.35.1195-release.apk 信息:[调试] 创建新的 appium 会话 0d25aeac-d055-449f-af84-b6d314d9b4a5 信息:启动 android appium 信息:[调试] 获取 Java 版本 信息:Java 版本为:1.8.0_162 info: [debug] 检查 adb 是否存在 信息:[调试] 使用来自 C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe 的 adb 信息:[调试] 将 chromedriver 二进制设置为:C:\Program Files (x86)\Appium\node_modules\appium\build\chromedriver\windows\chromedriver.exe 信息:[调试] 使用快速重置?真的 信息:[调试] 为会话准备设备 info: [debug] 检查应用程序是否实际存在 信息:检索设备 信息:[调试] 尝试查找已连接的 android 设备 信息:[调试]正在连接设备... 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe 设备 信息:[调试] 1 个设备已连接 信息:找到设备模拟器-5554 信息:[调试] 将设备 ID 设置为 emulator-5554 信息:[调试] 等待设备准备好并响应 shell 命令(超时 = 5) 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 等待设备 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "echo 'ready'" 信息:[调试] 启动 logcat 捕获 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 25 信息:设备 API 级别为:25 信息:[调试]为语言提取字符串:默认 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 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" "D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles \Appium\apk\ChatApp-master-0.9.35.1195-release.apk" "C:\Users\UNMESH~1.GHA\AppData\Local\Temp\com.odysseyinc.charla" info: [debug] 从转换后的 strings.json 中读取字符串 信息:[调试]将语言设置为默认值 info: [debug] 执行 cmd: C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 push "C:\Users\UNMESH~1.GHA\ AppData\Local\Temp\com.odysseyinc.charla\strings.json" /data/local/tmp info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\build-tools\28.0.3\aapt.exe 的 aapt 信息:[调试] 从清单中检索进程。 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\build-tools\28.0.3\aapt.exe 转储 xmltree D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\Appium \apk\ChatApp-master-0.9.35.1195-release.apk AndroidManifest.xml 信息:[调试] 将应用进程设置为:com.odysseyinc.charla 信息:[调试] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序 信息:[调试] 检查 D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\Appium\apk\ChatApp-master-0.9.35.1195-release.apk 的应用程序证书。 信息:[调试] 执行 cmd:java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar" D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\ Appium\apk\ChatApp-master-0.9.35.1195-release.apk 信息:[调试] 应用程序已签名。 信息:[调试] Zip 对齐 D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\Appium\apk\ChatApp-master-0.9.35.1195-release.apk info: [debug] 检查 zipalign 是否存在 信息:[调试] 使用 C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\build-tools\28.0.3\zipalign.exe 中的 zipalign 信息:[调试] Zip-aligning apk。 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\build-tools\28.0.3\zipalign.exe -f 4 D:\AndroidNew\Yrreport\YrReport\RemoteSystemsTempFiles\ Appium\apk\ChatApp-master-0.9.35.1195-release.apk C:\Users\UNMESH~1.GHA\AppData\Local\Temp\119427-15556-1rmbgw9\appium.tmp 信息:[调试] 应用程序的 MD5 为 f3d7efc8b197792c3d0529a48dc92ff2 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "ls /data/local/tmp/f3d7efc8b197792c3d0529a48dc92ff2.apk " 信息:[调试] 获取 com.odysseyinc.charla 的安装状态 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 25 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "pm list packages -3 com.odysseyinc.charla" 信息:[调试] 应用程序已安装 信息:应用程序已安装,正在重置应用程序 信息:[调试]运行快速重置(停止并清除) 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "am force-stop com.odysseyinc.charla" 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 shell "pm clear com.odysseyinc.charla" 信息:[调试] 转发系统:4724 到设备:4724 info: [debug] 执行 cmd: C:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 forward tcp:4724 tcp:4724 信息:[调试] 将 appium 引导程序推送到设备... 信息:[调试] 执行 cmd:C:\Users\unmesh.ghatbandhe\AppData\Local\Android\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:\Users\unmesh.ghatbandhe\AppData\Local\Android\Sdk\platform-tools\adb.exe -s emulator-5554 install "C:\Program Files (x86)\Appium\ node_modules\appium\build\settings_apk\settings_apk-debug.apk" 信息:[调试] 停止 logcat 捕获 信息:[调试] Logcat 以代码 null 终止,信号 SIGTERM info: [debug] 发送关闭命令,等待 UiAutomator 停止... 警告:UiAutomator 没有足够快地关闭,称它消失了 错误:无法启动 Appium 会话,错误是:错误:命令失败:adb:无法安装 C:\Program Files (x86)\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk:失败 [INSTALL_FAILED_ALREADY_EXISTS : 尝试重新安装 io.appium.settings 而不先卸载。]
info: [debug] 清理 android 对象 信息:[调试] 清理 appium 会话 信息:[调试]错误:命令失败:adb:无法安装 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:637:15) at ChildProcess.EventEmitter.emit (events.js:98:17) at maybeClose (child_process.js:743:16) at Process.ChildProcess._handle.onexit (child_process.js:810:5)info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Command failed: adb: failed to安装 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,"origValue":"命令失败:adb: 安装失败 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} 信息:
`
【问题讨论】:
标签: java android appium appium-android