使用appium/selenium自动化脚本测试了多个android本机应用程序,但没有一个应用程序被打开并收到以下错误消息
stderr:'security exception:permission denial:start intent from null(pid=20930,uid=2000)not exported from uid 10178'
所需的功能设置正确,但没有打开任何应用程序。
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Mobile");
caps.setCapability("udid", "520042c3b5e5");
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "8.0.0");
caps.setCapability("appPackage", "in.amazon.mShop.android.shopping");
caps.setCapability("appActivity", "com.amazon.mShop.home.web.MShopWebGatewayActivity");
caps.setCapability("noReset", "true");
//Instantiate Appium Driver
try
{
AppiumDriver<MobileElement> driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
}
catch (MalformedURLException e)
{
System.out.println(e.getMessage());
}
应打开amazon移动应用程序,但显示安全异常:权限拒绝错误消息。
通过更改应用程序包和活动尝试了其他本机应用程序,但对所有尝试的应用程序仍然得到相同的错误。
很少有在线解决方案说要编辑一个出口领域 AndroidManifest.xml
. 在哪里可以找到这个文件?
appium版本-1.10.0 java-jdk 1.8
2条答案
按热度按时间oyt4ldly1#
当您尝试启动不是主活动的appactivity时,会出现这种错误。
你必须把主要的活动放在你想要的能力上。
当开发人员在应用程序中添加启动屏幕并更改主应用程序活动时,我也遇到了类似的问题。
czq61nw12#
从官方文档中可以看出,如果出现以下情况,导出属性将执行以下操作:
android:exported = true->广播接收器能够从应用程序外部的源接收消息
android:exported = false->广播接收器只能从应用程序本身接收消息
您可以添加
exported
属性内部<activity>
androidmanifest.xml文件中的元素标记如下: