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

叶宏 · October 21, 2016 · Last by zyc replied at March 20, 2020 · 4025 hits

电脑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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up