2

当我尝试使用 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. 我有一个模拟的Android设备adt-bundle-mac-x86_64-20131030/sdk/tools/emulator -avd 4.4-KitKat-Nexus-4
  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,找不到任何要删除的,运行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并给出上面的错误消息。

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

4

3 回答 3

2

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

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

于 2013-12-02T19:05:21.790 回答
1

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

例如: XML - tools:context="com.example.emptyname.MainActivity" kt - 包 com.example.emptyname

于 2021-02-27T09:39:08.263 回答
0
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");
于 2016-02-04T13:35:50.537 回答