【问题标题】:Android appium Permission Denial: starting IntentAndroid appium Permission Denial:启动 Intent
【发布时间】:2020-12-16 10:28:00
【问题描述】:

任何人都可以帮助我查看此权限问题是由于我需要开发人员在打开权限的情况下重新构建的应用程序吗? 还是我的 adb 命令问题? 还是意图参数使用错误?

在安卓手机上,

第一个屏幕: com.ninetest.hd3.test.testDetectActivity

第二屏:

com.ninetest.hd3.activity.MailActivity

在第一屏执行 adb 命令时,出现错误。如果我将 appActivity 更改为第二个屏幕,那么没有问题。但是如果我需要运行 appium 测试用例,我不能跳过第一个屏幕。

我也不能跳过意图参数,否则安装在工作配置文件下的应用程序不会启动。

**error**

C:\Users\tester>adb shell am start --user 10 -n "com.ninetest.hd3.work.cac/com.ninetest.hd3.test.testDetectActivity"
Starting: Intent { cmp=com.ninetest.hd3.work.cac/com.ninetest.hd3.test.testDetectActivity }
Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.ninetest.hd3.work.cac/com.ninetest.hd3.test.testDetectActivity } from null (pid=9047, uid=2000) not exported from uid 1010396

java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10000000 cmp=com.ninetest.hd3.work.cac/com.ninetest.hd3.test.testDetectActivity } from null (pid=9047, uid=2000) not exported from uid 1010396
        at com.android.server.wm.ActivityStackSupervisor.checkStartAnyActivityPermission(ActivityStackSupervisor.java:1386)
        at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:921)
        at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:694)
        at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:1932)
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:625)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1707)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1603)
        at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:4218)
        at com.android.server.am.ActivityManagerShellCommand.runStartActivity(ActivityManagerShellCommand.java:518)
        at com.android.server.am.ActivityManagerShellCommand.onCommand(ActivityManagerShellCommand.java:172)
        at android.os.ShellCommand.exec(ShellCommand.java:104)
        at com.android.server.am.ActivityManagerService.onShellCommand(ActivityManagerService.java:12243)
        at android.os.Binder.shellCommand(Binder.java:916)
        at android.os.Binder.onTransact(Binder.java:790)
        at android.app.IActivityManager$Stub.onTransact(IActivityManager.java:5310)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3383)
        at android.os.Binder.execTransactInternal(Binder.java:1056)
        at android.os.Binder.execTransact(Binder.java:1029)

【问题讨论】:

    标签: android appium appium-android


    【解决方案1】:

    我认为您需要在 Activity 的 AndroidManifest.xml 文件中设置 android:exported="true"

    【讨论】:

    • 是的,我想是的。但是我没有apk,我该如何修改它?我认为只有开发人员才能做到这一点。?
    • 如果你没有项目源是的,只有开发者可以修改,你需要源代码来修改,不是吗?
    • 我没有源代码。我不确定它是否有目的。可能是安全原因,它不能允许导出为真。任何其他想法解决方法?要忽略此屏幕活动,因为我不需要在此屏幕上相交。我将手动点击此屏幕上的某些内容以继续下一个屏幕,然后在该屏幕上运行我的自动化脚本。
    • 我发现这个appium.io/docs/en/writing-running-appium/android/… 可能对您有帮助,您报告的例外情况与此相同
    • 是的类似问题。如果我可以跳过第一个屏幕活动并仅启动第二个屏幕活动,我正在寻找 appium 解决方案。即使我的意图不是主要的第一个屏幕活动,appium 也不会退出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多