3

在 Monkeyrunner 中开始活动时,我试图在我的临时演员中传递一个 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到 String、Double 和 Integer,即使 MonkeyDevice 的文档声明您可以在 extras 字典中传递任何结构化数据类型。有没有人找到办法做到这一点?

4

1 回答 1

1

我最近才遇到这个问题并阅读了源代码,发现不幸的是这是不可能的。

MonkeyDevice 实例将其工作委托给adb - 的 am 命令。您可能已经知道,am 能够从命令行接受的附加功能非常有限。事实上,它可以携带一个字符串、一个布尔值或一个整数。

于 2012-07-16T08:59:09.590 回答