- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行一个启动应用程序的简单脚本。这在我使用 Android 6.0 时运行良好,但在 Android 7.0 上失败
这是脚本-
DesiredCapabilities capabilities= new DesiredCapabilities();
capabilities.setCapability("deviceName","Moto G4 Plus");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("platformVersion","7.0.");
capabilities.setCapability("appPackage","com.bigbasket.mobileapp");
capabilities.setCapability("appActivity","com.bigbasket.mobileapp.activity.HomeActivity");
AndroidDriver driver= new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Thread.sleep(4000);
这是错误日志-
error: Failed to start an Appium session, err was: Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "C:\Users\gadiisha\AppData\Local\Android\android-sdk\platform-tools\adb.exe -s ZY2237WRTC install "D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk"" Failed to install D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]
info: [debug] Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "C:\Users\gadiisha\AppData\Local\Android\android-sdk\platform-tools\adb.exe -s ZY2237WRTC install "D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk"" Failed to install D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]
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\gadiisha\AppData\Local\Android\android-sdk\platform-tools\adb.exe -s ZY2237WRTC install \"D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"\nFailed to install D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]\r\n)","killed":false,"code":1,"signal":null,"cmd":"C:\WINDOWS\system32\cmd.exe /s /c \"C:\Users\gadiisha\AppData\Local\Android\android-sdk\platform-tools\adb.exe -s ZY2237WRTC install \"D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"","origValue":"Command failed: C:\WINDOWS\system32\cmd.exe /s /c \"C:\Users\gadiisha\AppData\Local\Android\android-sdk\platform-tools\adb.exe -s ZY2237WRTC install \"D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk\"\"\nFailed to install D:\Appium\node_modules\appium\build\settings_apk\settings_apk-debug.apk: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install io.appium.settings without first uninstalling.]\r\n"},"sessionId":null} info: <-- POST /wd/hub/session 500 10506.783 ms - 1306
详情-1.appium for windows 2.appium version 1.4.16.1 3.eclipse (luna)
到目前为止我尝试过的解决方案 -
升级到最新版本的 Appium - 1.6.5(它没有用,所以我降级到 Appium 1.4.16.1
从移动设备中删除了 appium 设置并解锁了文件夹。
删除应用程序,然后重新启动 appium 服务器,然后再次运行脚本
我在门户网站上看到过类似的问题,但所有这些问题都只是冗长的讨论而没有适当的解决方案。请帮我关闭这个问题。谢谢
最佳答案
这是 Android 操作系统版本 7.0 设备的已知问题
Appium 在初始化驱动程序的同时在设备上安装了两个应用程序(设置和解锁器)(并且它在非 7.0 操作系统版本设备上没有任何问题)。
当您尝试在同一设备上再次初始化 appium 驱动程序时,appium 无法安装这两个应用程序并且无法初始化驱动程序。
解决方案: 对于 Android OS 7.0,在启动 appium 服务器之前,您需要从设备上卸载解锁应用和设置应用。您可能在具有不同操作系统版本的设备上运行您的脚本,因此最好为卸载解锁器和设置应用程序设置条件。
以下是步骤,但是您可以根据需要进行修改。
1.首先通过adb命令获取设备的OS版本,并存入string中。
下面是上述两个步骤的组合代码 fragment :
String cmd = "adb shell getprop ro.build.version.release";
String osVersion=executeCommand(cmd);
if(osVersion.contains("7"))
{
//uninstall io.appium.settings
cmd="adb uninstall io.appium.settings";
executeCommand(cmd);
//uninstall io.appium.unlock
cmd="adb uninstall io.appium.unlock";
executeCommand(cmd);
}
public String executeCommand(String cmd)
{
String commandresponse="";
try
{
Runtime run = Runtime.getRuntime();
Process proc=run.exec(cmd);
BufferedReader stdInput = new BufferedReader(new
InputStreamReader(proc.getInputStream()));
BufferedReader stdError = new BufferedReader(new
InputStreamReader(proc.getErrorStream()));
String response=null;
while ((response = stdInput.readLine()) != null)
{
if(response.length()>0)
{
commandresponse=commandresponse+response;
}
}
while ((response = stdError.readLine()) != null)
{
commandresponse=commandresponse+response;
}
}
catch(Exception e)
{
e.printStackTrace();
}
//System.out.println(commandresponse);
return commandresponse;
}
注意:上面的代码 fragment 是在考虑到只有一个设备连接到机器的情况下编写的,因此所有 adb 命令都只发送到该设备。如果您已将多个设备连接到机器,那么您可以断开未使用的设备或在代码中的上述 adb 命令中添加 deviceSerialNumber 参数。
希望这有帮助:)
关于java - 失败 [INSTALL_FAILED_ALREADY_EXISTS : Attempt to re-install io. appium.settings 没有先卸载。],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45880634/
1.使用start-all.sh启动hadoop服务时,提示输入 您确定要继续连接吗(是/否) 当我通过脚本启动它时如何抑制这个提示,现在我正在使用期望模块,但我认为可能有一种更简单的方法来做到这一点
我安装了在 Ubuntu 12.04 下运行的 Geonode R 2.01。我尝试使用以下命令卸载它: sudo apt-get remove --purge geonode sudo apt-ge
假设我有 AppDomainA,它启动 AppDomainB。 AppDomainB 然后启动 AppDomainC。 如果在 AppDomainA 中卸载 AppDomainB,AppDomainC
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 8年前关闭。 Improve this q
我尝试使用以下命令从我的 Ubuntu 中卸载 NGinX: sudo apt-get remove nginx-core nginx-full nginx-light nginx-extras n
我已经从 /Applications/ 中删除了 MacVim目录,但当我输入 vim 时在终端中显示错误:no such file or directory: /Applications/MacVi
我的页面中有一个 iframe,该 iframe 嵌入了一个不在我的服务器上的网站。 我正在寻找一种在 iframe 重定向之前触发函数的方法。例如,当用户单击 iframe 内的链接并且 ifram
看来我被 Visual Studio 的 Atomineer Pro 文档加载项挟持了!试用期结束了,我没有用了!但现在每次我在 Visual Studio 中做某事时,我都会收到一条错误消息并发送到
我有一个使用 WiX 完成的安装程序。安装完成后,它会启动一个应用程序,在 Explorer 进程中注入(inject)一些代码。 目前,当我卸载时,重新启动管理器会启动并关闭我的应用程序和资源管理器
在我的网络应用中,我需要在用户离开页面之前发送他们更改的最新数据。 我在页面卸载时调用这样的函数: window.onbeforeunload=sendData; 这就是函数内部调用的内容 funct
我使用 jQuery 和 history.js 来管理部分页面之间的动态转换;这样我就可以避免重新加载整个文档。其中一些部分页面调用自己独特的 javascript 文件。虽然页面之间的转换运行良好,
我需要处理应用程序包的变化,我这样写我的 mainfest mainfest.xml 我的接收器类
我目前在使用大量内存方面遇到了麻烦,我正在尽一切努力削减和优化涉及内存的代码...目前我的游戏的大部分 Nib 文件都加载了所有它在 ViewDidLoad 中的变量,现在我的问题是,在我的 view
如何从系统中删除 composer Php Dependecny Manager? 它说卸载无法继续,因为以下应用程序正在使用需要删除的文件。 Windows 资源管理器 最佳答案 我遇到了同样的问题
所以我使用 stow 在服务器上安装了 Python 2.7.1 源代码 .我过去很粗心,在处理源代码安装时我试图保持井井有条。所以,输入 stow。现在我使用 wget 安装了 easy_insta
有谁知道如何卸载 MacRuby?我在使用 RubyCocoa 然后决定试用 MacRuby,在安装 MacRuby 之后,RubyCocoa 已经停止工作。所以我想删除 MacRuby,但我找不到任
我无法从 64 位 EC2 卸载 mongo。在/usr/bin 我有 mongo 和 mongod 等等。当我从任何地方键入 mongo 时,它会在 1.8 版打开 shell。我现在下载了 2.0
本文实例讲述了Android编程实现监控apk安装,卸载,替换的方法。分享给大家供大家参考,具体如下: ?
1说明 mysql++是mysql开发团队为OO编程提供的C++开发库,是对mysql提供的底层数据存取API进行的C++封装,用其手册上的说法是:复杂而又庞大,当然功能也更强大。 Mysql+
自从我开始建立我的网站那天起,我安装了很多包,有时是为了测试一堆代码,有时是为了项目本身(后来我发现这不是需要的包)。但是现在,当我运行 pip freeze 时,我有一个包列表,我很难卸载不使用的包
我是一名优秀的程序员,十分优秀!