在 Monkeyrunner 中开始 Activity 时,我试图在我的 extras 中传递一个 Parcelable 对象。脚本中的区域看起来像这样
user = FbUser()
extraDic = {}
extraDic['userName'] = 'Test'
extraDic['userId'] = 'me'
extraDic['userInfo'] = user
d.startActivity(extras=extraDic, component=runComponent + postActivity)
FbUser是我java项目中实现Parcelable的对象。项目的 bin 已正确添加到 Jython Monkeyrunner 脚本中的 sys.path 中。当我调试脚本时,它会正确创建 FbUser 对象,但是,当我在 LogCat 中打印出额外内容时,“userInfo”额外内容丢失了......这似乎是因为 JythonUtils 类只会翻译 PyString、PyFloat 和 PyInteger到字符串、 double 和整数,即使 MonkeyDevice 的文档声明您可以在 extras 字典中传递任何结构化数据类型。有没有人找到办法做到这一点?
最佳答案
我最近才遇到这个问题并阅读源代码发现不幸的是这是不可能的。
MonkeyDevice 实例将其工作委托(delegate)给 am command by adb - .您可能已经知道,am 能够从命令行接受的额外信息是 quite limited .事实上,它可以携带一个字符串、一个 bool 值或一个整数。
关于android - 从 Monkeyrunner 传递带有 Parcelable 对象的 Bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7435283/