3

开始活动时出现以下异常。

java.lang.SecurityException-Not allowed to start activity Intent { flg=0x4000000 cmp=[MY_ACTIVITY] (has extras)}-
[android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1696),
android.app.Instrumentation.execStartActivity(Instrumentation.java:1488),
android.app.Activity.startActivityForResult(Activity.java:3401),
android.app.Activity.startActivityForResult(Activity.java:3357),
android.app.Activity.startActivity(Activity.java:3597),
android.app.Activity.startActivity(Activity.java:3565), ...]

代码非常严格。创建意图,使用 getPackageManager().queryIntentActivities 确保有活动被此意图过滤并执行 startActivity(intent) 有什么想法吗?

4

1 回答 1

0

请参阅源代码。我们可以发现异常的根本原因是ActivityManager.START_PERMISSION_DENIED

            case ActivityManager.START_PERMISSION_DENIED:
            throw new SecurityException("Not allowed to start activity "
                    + intent);

因此,当另一个进程想要在您的应用程序中执行某些只能在内部访问的组件时,就会导致此异常。换句话说,调用者进程没有在android:permission你的组件的属性中声明的权限,或者android:exported属性设置为 false。

于 2017-06-08T01:05:03.317 回答