gpt4 book ai didi

java - 失败 [INSTALL_FAILED_ALREADY_EXISTS : Attempt to re-install io. appium.settings 没有先卸载。]

转载 作者:行者123 更新时间:2023-11-29 19:09:29 24 4
gpt4 key购买 nike

我正在尝试运行一个启动应用程序的简单脚本。这在我使用 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 v​​ersion 1.4.16.1 3.eclipse (luna)

到目前为止我尝试过的解决方案 -

  1. 升级到最新版本的 Appium - 1.6.5(它没有用,所以我降级到 Appium 1.4.16.1

  2. 从移动设备中删除了 appium 设置并解锁了文件夹。

  3. 删除应用程序,然后重新启动 appium 服务器,然后再次运行脚本

我在门户网站上看到过类似的问题,但所有这些问题都只是冗长的讨论而没有适当的解决方案。请帮我关闭这个问题。谢谢

最佳答案

这是 Android 操作系统版本 7.0 设备的已知问题

  1. Appium 在初始化驱动程序的同时在设备上安装了两个应用程序(设置和解锁器)(并且它在非 7.0 操作系统版本设备上没有任何问题)。

  2. 当您尝试在同一设备上再次初始化 appium 驱动程序时,appium 无法安装这两个应用程序并且无法初始化驱动程序。

解决方案: 对于 Android OS 7.0,在启动 appium 服务器之前,您需要从设备上卸载解锁应用和设置应用。您可能在具有不同操作系统版本的设备上运行您的脚本,因此最好为卸载解锁器和设置应用程序设置条件。

以下是步骤,但是您可以根据需要进行修改。

1.首先通过adb命令获取设备的OS版本,并存入string中。

  1. 假设您已将上述命令的输出存储在字符串变量中,然后您可以比较下面的值并执行 adb 命令来卸载这两个应用程序,您的 appium 驱动程序应该可以毫无问题地初始化。

下面是上述两个步骤的组合代码 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com