Appium 启动报错 (Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity,怎么解决?

武剑波 · 2015年01月11日 · 最后由 生姜 回复于 2015年09月10日 · 3178 次阅读

程序启动后获取的日志如下:

I/ActivityManager(972): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.etaoshi.activity/com.etaoshi.app.activity.SplashActivity bnds=[536,72][712,282]} from pid 1279

配置如下:
capabilities.setCapability("appPackage", "com.etaoshi.activity");
capabilities.setCapability("appActivity",
".com.etaoshi.app.activity.SplashActivity");

报错:org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Activity used to start app doesn't exist or cannot be launched! Make sure it exists and is a launchable activity) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 4.06 seconds

共收到 8 条回复 时间 点赞

我表示。。没有看懂。。。“如果不是类似下面的包名是没有问题的”。。这句话。。。

#1 楼 @monkey 如果包名里边不是有两个 com.的应用是可以启动的
capabilities.setCapability("appPackage", "com.xxxx");
capabilities.setCapability("appActivity", ".xxx.SplishActivity");

如果是:
capabilities.setCapability("appPackage", "com.xxx.activity");
capabilities.setCapability("appActivity",
".com.xxx.app.activity.MainActivity");
就会报错

爱莫能助,因为没看懂要表达啥...

#2 楼 @jianbo_wu 貌似我明白你的意思了。。那啥。。第一个是包名,也就是你说的 package name,第二个是 activity name,android 的 intent 是需要将两个通过/来拼接的,所以你写两遍,android 就不认识了。。。

#3 楼 @anikikun 貌似看懂了。。

#4 楼 @monkey 在 androidmanifest.xml 中可以找到包名和启动 activity 类名。通过这个就可以设置属性了。

#6 楼 @snowfox 。。=。=为啥回复我。。

#2 楼 @jianbo_wu
desired_caps['app-Package'] = 'com.example.android.ContactManager.apk'
desired_caps['app-Activity'] = '.ContactManager'

仍然报同样的错

武剑波 关闭了讨论 01月28日 16:17
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册