Appium+python真机测试报错: Failed to start an Appium session,求解

noReason970lin 2018-10-16 04:39:40
配置:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.tools.sdkcontroller"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />

<uses-permission android:name="android.permission.INTERNET" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >

<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.SensorActivity"
android:launchMode="singleInstance"
android:windowSoftInputMode="stateUnchanged"
android:label="@string/sensors_activity_title">
</activity>
<activity
android:name=".activities.MultiTouchActivity"
android:launchMode="singleInstance"
android:screenOrientation="portrait"
android:theme="@style/Theme.MultiTouch"
android:windowSoftInputMode="stateHidden">
</activity>
<service
android:name=".service.ControllerService"
android:description="@string/service_description"
android:icon="@drawable/ic_launcher" />
</application>
</manifest>

代码:
import os, time, unittest

from selenium import webdriver

PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps['platformVersion'] = '7.1.1'

desired_caps['deviceName'] = 'vivo X20A'

desired_caps['appPackage'] = 'cn.bevol.p'

desired_caps['appActivity'] = 'cn.bevol.p.activity.IndexActivity'

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)

time.sleep(5)

运行报错信息
> error: Failed to start an Appium session, err was: Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "D:\Appium-install\android-sdk-windows\tools\adb.exe -s e09f9050 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n cn.bevol.p/cn.bevol.p.activity.IndexActivity""
> java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=cn.bevol.p/.activity.IndexActivity } from null (pid=4858, uid=2000) not exported from uid 10506
> at android.os.Parcel.readException(Parcel.java:1684)
> at android.os.Parcel.readException(Parcel.java:1637)
> at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3266)
> at com.android.commands.am.Am.runStart(Am.java:635)
> at com.android.commands.am.Am.onRun(Am.java:388)
> at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
> at com.android.commands.am.Am.main(Am.java:121)
> at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
> at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
>
> info: [debug] Error: Command failed: C:\WINDOWS\system32\cmd.exe /s /c "D:\Appium-install\android-sdk-windows\tools\adb.exe -s e09f9050 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n cn.bevol.p/cn.bevol.p.activity.IndexActivity""
> java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=cn.bevol.p/.activity.IndexActivity } from null (pid=4858, uid=2000) not exported from uid 10506
> at android.os.Parcel.readException(Parcel.java:1684)
> at android.os.Parcel.readException(Parcel.java:1637)
> at android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3266)
> at com.android.commands.am.Am.runStart(Am.java:635)
> at com.android.commands.am.Am.onRun(Am.java:388)
> at com.android.internal.os.BaseCommand.run(BaseCommand.java:51)
> at com.android.commands.am.Am.main(Am.java:121)
> at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
> at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)
>
> at ChildProcess.exithandler (child_process.js:751:12)
> at ChildProcess.emit (events.js:110:17)
> at maybeClose (child_process.js:1016:16)
> at Process.ChildProcess._handle.onexit (child_process.js:1088:5)
> info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: Command failed: C:\\WINDOWS\\system32\\cmd.exe /s /c \"D:\\Appium-install\\android-sdk-windows\\tools\\adb.exe -s e09f9050 shell \"am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n cn.bevol.p/cn.bevol.p.activity.IndexActivity\"\"\njava.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=cn.bevol.p/.activity.IndexActivity } from null (pid=4858, uid=2000) not exported from uid 10506\r\n\tat android.os.Parcel.readException(Parcel.java:1684)\r\n\tat android.os.Parcel.readException(Parcel.java:1637)\r\n\tat android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3266)\r\n\tat com.android.commands.am.Am.runStart(Am.java:635)\r\n\tat com.android.commands.am.Am.onRun(Am.java:388)\r\n\tat com.android.internal.os.BaseCommand.run(BaseCommand.java:51)\r\n\tat com.android.commands.am.Am.main(Am.java:121)\r\n\tat com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)\r\n\tat com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)\r\n)","killed":false,"code":1,"signal":null,"cmd":"C:\\WINDOWS\\system32\\cmd.exe /s /c \"D:\\Appium-install\\android-sdk-windows\\tools\\adb.exe -s e09f9050 shell \"am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n cn.bevol.p/cn.bevol.p.activity.IndexActivity\"\"","origValue":"Command failed: C:\\WINDOWS\\system32\\cmd.exe /s /c \"D:\\Appium-install\\android-sdk-windows\\tools\\adb.exe -s e09f9050 shell \"am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n cn.bevol.p/cn.bevol.p.activity.IndexActivity\"\"\njava.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=cn.bevol.p/.activity.IndexActivity } from null (pid=4858, uid=2000) not exported from uid 10506\r\n\tat android.os.Parcel.readException(Parcel.java:1684)\r\n\tat android.os.Parcel.readException(Parcel.java:1637)\r\n\tat android.app.ActivityManagerProxy.startActivityAsUser(ActivityManagerNative.java:3266)\r\n\tat com.android.commands.am.Am.runStart(Am.java:635)\r\n\tat com.android.commands.am.Am.onRun(Am.java:388)\r\n\tat com.android.internal.os.BaseCommand.run(BaseCommand.java:51)\r\n\tat com.android.commands.am.Am.main(Am.java:121)\r\n\tat com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)\r\n\tat com.android.internal.os.RuntimeInit.main(RuntimeInit.java:262)\r\n"},"sessionId":null}
> info: <-- POST /wd/hub/session 500 9459.433 ms - 2667
...全文
457 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_41840492 2018-10-25
  • 打赏
  • 举报
回复
我运行貌似不需要root权限吧,开启usb调试,adb devices能找到设备就可以了
weixin_41840492 2018-10-25
  • 打赏
  • 举报
回复
用java+appium路过
noReason970lin 2018-10-18
  • 打赏
  • 举报
回复
自己回复一下,原因是手机没开root权限,cmd命令中运行adb root后再运行程序即可解决
noReason970lin 2018-10-16
  • 打赏
  • 举报
回复
有没有知道如何解决这个问题的,我是新入门的菜鸟在此求解。

5,177

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 质量管理/软件测试
功能测试压力测试安全性测试 个人社区 湖南省·长沙市
社区管理员
  • 软件测试
  • 虫无涯
  • 小博测试成长之路
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

欢迎大家加入到软件测试的社区,在这里,希望大家勇于发表自己的看法,欢迎大家分享自己在软件测试工作过程中遇到的问题以及工作经验分享。

1.想转行的小伙伴,遇到问题没有及时回复的,可以私聊小博进行反馈

2.大家对社区有好的建议,都可以在社区发帖进行反馈

推荐大家学习的软件测试入门笔记:软件测试入门学习笔记

试试用AI创作助手写篇文章吧