【问题标题】:Activity used to start app doesn't exist! Make sure it exists用于启动应用程序的活动不存在!确保它存在
【发布时间】:2013-12-18 13:47:43
【问题描述】:

当我尝试使用 Appium 测试我的 Hello World Android 应用时,我得到了Activity used to start app doesn't exist! Make sure it exists

  1. 我有一个 apk,里面有一个包:com.company.myapp
  2. 包中有一个活动:MainActivity
  3. apk 面向 Android 4.4,API 级别 19
  4. 我有一个通过adt-bundle-mac-x86_64-20131030/sdk/tools/emulator -avd 4.4-KitKat-Nexus-4模拟的Android设备
  5. 在 DesiredCapabilities 中,我为 app-activity 尝试了以下操作:
    1. "MainActivity"
    2. ".MainActivity"
    3. "com.company.myapp.MainActivity"
  6. Appium 的日志显示 debug: Request received with params: {"desiredCapabilities":{"newCommandTimeout":"60","app":"/Users/me/Development/workspace/myapp/bin/myapp.apk","platform":"MAC","browserName":"","app-package":"com.company.myapp","device-ready-timeout":"60","device":"android","launch":"true","compressXml":"true","app-wait-activity":"com.company.myapp.MainActivity","app-activity":"com.company.myapp.MainActivity","version":"4.4"}}
  7. Appium 创建会话,启动 android appium,找到我连接的(模拟)设备,说应用未安装,应用已签名,找到想要保留的 apk,找不到要删除的 apk,运行 adb -s emulator-5554 shell pm install -r [apk it found that it wants to keep] ,转发端口4724,唤醒设备获取{"value":true,"status":0},确保屏幕解锁...

然后它执行adb -s emulator-5554 shell am start -n com.company.myapp/com.company.myapp.MainActivity 并给出上面的错误信息。

它也尝试使用 .附加到活动并给出相同的错误消息。

【问题讨论】:

    标签: android selenium-webdriver appium


    【解决方案1】:

    我发现如果在运行我的测试之前安装了应用程序,它不会抱怨 Activity 不存在。

    如果我使用 appium --full-reset 启动 appium,它会卸载现有应用,然后安装 一些 apk 并找到 Activity。

    【讨论】:

      【解决方案2】:

      检查相应应用中 .java 或 .kt 中的包名称是否与 XML 包名称中的相同。

      例如: XML - 工具:上下文 =“com.example.emptyname.MainActivity” kt - 包 com.example.emptyname

      【讨论】:

        【解决方案3】:
        Does not clear the app data and launch the app from the desire activity      
        DesiredCapabilities capabilities = new DesiredCapabilities();
             capabilities.setCapability("deviceName","Galaxy E7");
                           capabilities.setCapability("platformName", "Android");
                           capabilities.setCapability("version", "5.1.1");
                         capabilities.setCapability("noReset", true);
                         capabilities.setCapability("fullReset", false);
                       capabilities.setCapability("app", "D:/Builds/RSQuare_Live.apk");
                         capabilities.setCapability("app-wait-activity", "com.rr.consultants.base.SpalshScreenActivity");
        

        【讨论】:

          猜你喜欢
          • 2018-10-25
          • 1970-01-01
          • 2019-08-15
          • 2014-03-22
          • 1970-01-01
          • 2015-06-14
          • 1970-01-01
          • 1970-01-01
          • 2015-07-19
          相关资源
          最近更新 更多