android - 使用 monkeyrunner startActivity 的问题

标签 android monkeyrunner

我已经在网上阅读了几篇文章,包括 Android 开发网站 http://developer.android.com/tools/help/monkeyrunner_concepts.html

我无法通过 startActivity 方法启动 Activity。我尝试了几种选择。这是一个示例代码:

package = 'com.mydomain.mypackage'
activity = '.MyActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)

还尝试了以下代码:

package = 'com.mydomain.mypackage'
activity = 'com.mydomain.mypackage.MyActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)

但是,似乎没有什么可以启动该 Activity 。我期待金钱工具开始 Activity ,这意味着我应该能够看到屏幕。

任何帮助都将不胜感激。

谢谢。

最佳答案

好吧,我很高兴你已经解决了你的问题,但这不是一个通用的解决方案,所以我想为前来这里寻找答案的人们添加一些东西。我自己花了很长时间才弄清楚这个问题,所以我希望我能帮助别人节省时间:

我的包名称(我的 AndroidManifest.xml 中元素的“package”属性的值,正如您也提到的那样)是: com.companyname.android.tv

我的主要(启动器) Activity 是: com.companyname.android.tv.TvActivity

这个还是不行:

package = 'com.companyname.android.tv'
activity = 'com.companyname.android.tv.TvActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)

然后我尝试从 android studio 运行该 Activity ,它成功并检查了日志。这就是我发现的:

启动应用程序:com.companyname.android_tv_app/com.companyname.android.tv.TvActivity。

所以我尝试了这个,效果很好:

package = 'com.companyname.android_tv_app'
activity = 'com.companyname.android.tv.TvActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)

“android_tv_app”是我们的应用程序名称。它没有写在您的 list 文件中。它只出现在一个地方,应用程序的 build.gradle 文件,如下所示:

applicationId "com.companyname.android_tv_app"

因此,如果您使用 monkeyrunner 的 startActivity 一直失败,您可以尝试用应用程序 ID 替换您的包名称。这是有道理的,因为 monkeyrunner 试图告诉系统:“去找到 this 应用程序,运行 this Activity ”并且没有应用程序 ID,看起来它找不到包。

可能大多数人都有相同的包名和应用程序 ID,因为向导可以帮助您保持这种状态,但是当您重命名应用程序和/或包名时,情况就不同了。

关于android - 使用 monkeyrunner startActivity 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24215965/

相关文章:

php - 如何在php中显示数据库以便在android应用程序中显示它

android - 我要实现什么代码才能在我的游戏中设置时间限制

android - Android 上的 UI 压力测试

android - 如何继承MonkeyDevice?

android - Telegram API release.keystore 错误

android - MediaStore 获取图像高度/宽度

android - Android monkeyrunner 的 help.py 在哪里

android - monkeyrunner 触摸事件被识别为长按

monkeyrunner - Monkey Runner在触摸时抛出socketexception断管

android - 更改调用屏幕