如何通过ADB启动Unity安卓应用 提示Activity不存在怎么办
核心问题
你命令里的包名写错了。
翻你贴的Manifest文件,根节点manifest明确标了实际包名是com.Futurus.AIntentTest,你试的所有命令里包名都写的com.Futurus.AIntent,漏了末尾的Test,系统按你给的错误包名找组件,当然报Activity不存在、resolve-activity匹配不到结果。
桌面点击图标、Sidequest能正常启动是因为这两个方式都是直接读取系统已注册的应用信息,不需要手动拼包名组件名,自然不会踩这个错。
正确操作
直接执行下面的命令就能正常拉起应用:
adb shell am start -n com.Futurus.AIntentTest/com.unity3d.player.UnityPlayerActivity
如果不确定包名对不对,先跑adb shell pm list packages | findstr Futurus,看返回的结果里实际安装的包名是什么,以这个返回值为准,避免Unity打包配置和你记忆里的包名有出入。
自定义Intent参数传参方法
要做自动化测试传自定义参数的话,直接在启动命令后面拼接对应类型的extra参数即可,不需要修改默认Manifest:
- 字符串类型用
--es 键名 值 - 整数类型用
--ei 键名 值 - 布尔类型用
--ez 键名 值
示例命令:
adb shell am start -n com.Futurus.AIntentTest/com.unity3d.player.UnityPlayerActivity --es auto_test_case "main_page_enter" --ei loop_count 5 --ez screenshot_on_fail true
Unity端启动后调用UnityPlayer.CurrentActivity.Intent读取Extra内容就能拿到你传的所有参数。
内容的提问来源于stack exchange,提问作者McBrideMusings
相关产品推荐
相关产品推荐

