Appium 求助:用 Appium 做自动化测试时无法启动手机端 Activity,提示 “error: Permission to start activity denied”

叶宏 · 2016年10月21日 · 最后由 zyc 回复于 2020年03月20日 · 2836 次阅读

电脑 Eclipse 中运行测试代码时,三星 Galaxy S7、酷派 S6 均无法启动 Acitivity,提示 “error: Permission to start activity denied”
查看 Appium 中报错处代码
executing cmd: D:\WorkTool\Appium\android-sdk-windows\platform-tools\adb.exe -s 89f56ba0 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.changhong.mscreensynergy.chiq3/com.changhong.mscreensynergy.ui.MainActivity"
error: Permission to start activity denied.
将该段代码拷贝到 adb 中执行
adb -s 89f56ba0 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.changhong.mscreensynergy.chiq3/com.changhong.mscreensynergy.ui.MainActivity"
提示安全异常
java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.changhong.mscreensynergy.chiq3/com.changhong.mscreensynergy.ui.MainActivity VirtualScreenParam=Params{mDisplayId=-1, null, mFlags=0x00000000)} } from null (pid=8820, uid=2000) not exported from uid 10379
将手机换为 root 后的开发版小米 3,应用可以成功打开 MainActivity

共收到 11 条回复 时间 点赞

appium 启动 app 是使用的 am start 的方法,所以没有权限的时候,就没办法拉起 app

楼主,现在这个问题解决了吗,我也碰到这个问题了

那意思是只能用开发版的手机进行测试吗?这样限制也太大了吧,因为很多手机根本没有开发版的刷机包呢。。一般的手机怎样才能获取权限呢?

还没有呢。。你找到解决办法了吗?

你这个问题可以写个 shell 脚本启动 activity,放到 SD 卡里面,程序中调用 shell 脚本,可以避开权限问题。

—— 来自 TesterHome 官方 安卓客户端

楼主,日志使用 markdown 格式包裹

这个 activity 没有 export 出来啊

时隔这么久,不知道楼主最后是怎么解决这个问题的。今天也遇到了:
http://stackoverflow.com/questions/30322988/cannot-run-android-app-through-adb-or-appium-because-of-securityexception-permi
具体 fragments 解释:http://www.jianshu.com/p/662c46cd3b5f

emmmm 楼上看不太懂

这种情况绝对是你没有选对 activity 可以问下你们开发 到底是哪个 activity 不一定 MainActivity 就是 的

需要在 AndroidManifest.xml 里面把 Activity 的 android:exported 属性设置为 true

如果你的手机是 root 过的,可以以 root 权限运行,这样也是可以的。

参考官方文档:https://developer.android.com/guide/topics/manifest/activity-element

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册