【问题标题】:Appium unknow error: An unknown server-side error occurred while processing the command. Original error: 'app' option is required for reinstallAppium 未知错误:处理命令时发生未知的服务器端错误。原始错误:重新安装需要“应用程序”选项
【发布时间】: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 请再次检查您的appPackageappActivity

标签: java android selenium appium


【解决方案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是否正确

  1. 插入您的 Android 设备并启动应用程序
  2. adb 设备
  3. 如果有设备连接。壳吧
    adb shell
  4. 运行这个
    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 文件夹并启动了应用程序。

谢谢大家!

【讨论】:

    猜你喜欢
    • 2022-10-18
    • 2018-07-26
    • 2017-10-21
    • 2019-01-03
    • 2016-02-04
    • 2017-01-24
    • 2020-06-04
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多