Appium 未知错误:处理命令时发生未知的服务器端错误。原始错误:重新安装需要“应用程序”选项
Posted
技术标签:
【中文标题】Appium 未知错误:处理命令时发生未知的服务器端错误。原始错误:重新安装需要“应用程序”选项【英文标题】:Appium unknow error: An unknown server-side error occurred while processing the command. Original error: 'app' option is required for reinstall 【发布时间】:2020-02-14 08:22:36 【问题描述】:我以管理员权限启动 Appium 我使用 Appium 高级设置中的允许会话覆盖
我只想从我的设备上启动一个应用程序,该应用程序已经安装但我收到此错误: 处理命令时发生未知的服务器端错误。原始错误:重新安装需要“应用”选项
这是我尝试运行的代码
package appiumtests;
import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
public class Appiumtest
static AppiumDriver<MobileElement> driver;
public static void main(String[] args)
try
openCasino();
catch(Exception exp)
System.out.println(exp.getCause());
System.out.println(exp.getMessage());
exp.printStackTrace();
public static void openCasino() throws Exception
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("deviceName","Mi A1");
cap.setCapability("udid","1d36c8469805");
cap.setCapability("platformName", "android");
cap.setCapability("platformVersion", "9");
cap.setCapability("appPackage", "eu.fortunagroup.casino.efortuna.ro.splashscreen.SplashScreenActivity");
cap.setCapability("appActivity", "splashscreen.SplashScreenActivity.Casino");
cap.setCapability("appWaitDuration,30000",true);
cap.setCapability("", "");
cap.setCapability("launchActivity ", "old.SplashActivity");
cap.setCapability("newCommandTimeout", "3000");
URL url = new URL("http://0.0.0.0:4723/wd/hub");
driver = new AppiumDriver<MobileElement>(url, cap);
System.out.println("Application Started");
【问题讨论】:
Domnu Vasile,错误发生在服务器端,所以我建议您检查服务器日志以找出问题所在。 什么是launchActivity
能力?顺便说一句,你在它后面加了一个空格,这行不通。尝试删除该功能并再次运行它。
@LajosArpad - 服务器日志在这里:pastebin.com/EGzTcQcN
@Vault23 我删除了那个上限并重做。同样的错误。上面的评论是服务器日志。谢谢
'eu.fortunagroup.casino.efortuna.ro.splashscreen.SplashScreenActivity' is not installed
请再次检查您的appPackage
和appActivity
【参考方案1】:
如果您想检查您是否使用了正确的 appPackage 和 appActivity,请通过终端或 cmd 启动它。
如果此 adb 命令在您的真实设备或模拟器上启动您的 APK 文件,则表示 [appPackage & appActivity] 有效。使用活动名称或包,直到找到正确的值。
adb shell am start -W -n package_name/expected_activity_name -S -a android.intent。 action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000
【讨论】:
开始:Intent act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=eu.fortunagroup.casino.efortuna.ro/com.playtech .unified.splashscreen.SplashScreenActivity 状态:ok 活动:eu.fortunagroup.casino.efortuna.ro/com.playtech.unified.splashscreen.SplashScreenActivity ThisTime:1423 TotalTime:1423 WaitTime:1463 Complete 应用程序已启动,但我无法启动它使用 appium @ConstantinVasile 尝试将您的 appium 桌面更新到最新版本,我相信 1.15.1 已经可用。【参考方案2】:我建议您在设备中安装应用程序,并通过单独测试 appPackage 和 appActivity 参数来查看它是否工作。
您可以通过以下操作查看您的appPackage和appActivity是否正确
-
插入您的 Android 设备并启动应用程序
adb 设备
如果有设备连接。壳吧
adb shell
运行这个dumpsys window windows | grep -E ‘mCurrentFocus’
参考图片。您将获得 appPackage 和 appActivity。
让我知道这是否适用于 2 个参数。
还是不能工作?测试你的 appActivity 或 appPackage 是否正确 如果上述方法不起作用,请在已安装应用的情况下执行此操作
adb shell am start -n com.package.name/com.package.name.ActivityName
如果这仍然不起作用,您很可能得到了 appName 或 appActivity 不正确。 参考:https://medium.com/@ivantay2003/appium-desired-capabilities-basic-cheat-sheet-to-launch-mobile-application-ios-android-75b664367031
【讨论】:
嗨。该应用程序已经安装并且可以正常运行。我做了你的建议并发现: cmp=eu.fortunagroup.casino.efortuna.ro/com.playtech.unified.splashscreen.SplashScreenActivity 使用这些,我仍然无法启动应用程序 可能还有另一种可能。即使我在上述方法中获得了 appActivity,但可能存在此方法未捕获的早期活动。 appActivity 出现得较早,但是当我们使用 shell 时,它是不正确的后来的活动。即使我使用这种方法,我也发现了这一点。我从开发人员那里发现在此之前有一个更早的活动(但它消失得很快)。一种方法是与开发人员确认这是启动时的第一个活动。如果已经安装了应用程序,则将 noReset 设置为 true。错误应该会消失。 我已经修改了答案并添加了 adb 命令。如果 adb cmd 不起作用,很可能是 appActivity 或 appPackage 错误。 嗨@john - 我解决了这个问题。我所要做的就是将 JDK 添加到 Eclipse。我在答案上方发表了评论。谢谢!【参考方案3】:我解决了这个问题!
我所要做的就是将 JDK 添加到 Eclipse。在这里能找到它: Setting JDK in Eclipse
右键单击您的项目>属性 选择左侧的“Java Build Path”,然后选择“JRE System Library”,点击Edit… 选择“工作区默认 JRE” 单击“已安装的 JRE” 如果您在列表中看到所需的 JRE,请选择它(选择 JDK 也可以) 如果没有,请单击搜索...,导航到计算机 > Windows C: > 程序文件 > Java,然后单击确定 现在您应该看到所有已安装的 JRE,选择您想要的 单击确定/完成一百万次
我没有选择 JRE,而是选择了 JDK 文件夹并启动了应用程序。
谢谢大家!
【讨论】:
以上是关于Appium 未知错误:处理命令时发生未知的服务器端错误。原始错误:重新安装需要“应用程序”选项的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Eclipse 在 Appium 上运行脚本测试?
移动自动化与 appium -- Selenium 驱动程序