Java 安卓自动化错误显示:“quot;安全异常:权限拒绝:启动意图“;

Java 安卓自动化错误显示:“quot;安全异常:权限拒绝:启动意图“;,java,android,selenium-webdriver,automation,appium-android,Java,Android,Selenium Webdriver,Automation,Appium Android,使用appium/selenium自动化脚本测试了多个android本机应用程序,但没有一个应用程序被打开并收到以下错误消息 Stderr:'安全异常:权限拒绝:从null(pid=20930,uid=2000)启动意图,而不是从uid 10178导出' 所需功能设置正确,但没有打开任何应用程序 DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("deviceName", "Mobil

使用appium/selenium自动化脚本测试了多个android本机应用程序,但没有一个应用程序被打开并收到以下错误消息

Stderr:'安全异常:权限拒绝:从null(pid=20930,uid=2000)启动意图,而不是从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());
        }
DesiredCapabilities=新DesiredCapabilities();
caps.setCapability(“deviceName”、“Mobile”);
上限设定能力(“udid”、“520042c3b5e5”);
caps.setCapability(“平台名”、“安卓”);
caps.setCapability(“平台版”、“8.0.0”);
setCapability(“appPackage”,“in.amazon.mShop.android.shopping”);
setCapability(“appActivity”、“com.amazon.mShop.home.web.MShopWebGatewayActivity”);
caps.setCapability(“noReset”、“true”);
//实例化应用程序驱动程序
尝试
{
AppiumDriver=新的AndroidDriver(新URL(“http://0.0.0.0:4723/wd/hub"(大写),;
} 
捕获(格式错误)
{
System.out.println(e.getMessage());
}
应打开Amazon移动应用程序,但会显示安全异常:权限拒绝错误消息

通过更改应用程序包和活动尝试了其他本机应用程序,但所有尝试的应用程序仍然出现相同的错误

很少有在线解决方案要求在
AndroidManifest.xml
中编辑导出字段。在哪里可以找到这个文件

Appium版本-1.10.0 Java-JDK 1.8

在以下情况下,导出的属性将执行以下操作:

  • android:exported=true->广播接收器能够从应用程序之外的来源接收消息

  • android:exported=false->广播接收器只能从应用程序本身接收消息

您可以在AndroidManifest.xml文件的
元素标记中添加导出的
属性,如下所示:

 <activity android:name=".MainActivity"
        android:exported="true"> 
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
 </activity>

当您尝试启动不是主要活动的appActivity时,会出现此类错误

您必须将主appActivity设置为所需的功能


当开发人员在应用程序中添加启动屏幕并更改主应用程序活动时,我也遇到了类似的问题。

我无法找到AndroidManifest.xml。你能指导我找到文件吗?此更新是针对每个应用程序单独进行还是在适用于所有应用程序的单个通用文件中进行。AndroidManifest.xml
文件位于每个应用程序项目的根目录下。这需要分别为每个应用程序完成。谢谢你Bryan。是否可以使用adb命令从命令提示符访问该文件,或者是否有其他方法来访问该文件?我尚未对此进行在线搜索,但仍然要求您也这样做。如果应用程序是您的,这将是合适的,因为您可以在您的项目中找到它。我还没有在其他开发人员的应用程序中尝试过这一点,因为您需要重新编译。但是,如果计算机中有
.apk
文件,则可以将其重命名为
.zip
文件,并在那里提取文件。之后,您将看到
AndroidManifest.xml
文件。希望这个帮助你的答案,请考虑检查绿色支票,以帮助其他人寻求SAMEANDANCE您SUAN。请您指导我获取主应用程序活动。您可以使用adb shell dumpsys package | grep-i“(输入软件包名称)”| grep activity命令查找主活动。您需要在编写脚本后运行应用程序。非常感谢。我在android studio中以调试模式打开应用程序,从AndroidManifest.xml中查找主要活动。问题现在解决了。