java.lang.SecurityException-不允许启动活动 Intent flg=0x4000000 cmp=[MY_ACTIVITY] (has extras)
Posted
技术标签:
【中文标题】java.lang.SecurityException-不允许启动活动 Intent flg=0x4000000 cmp=[MY_ACTIVITY] (has extras)【英文标题】:java.lang.SecurityException-Not allowed to start activity Intent flg=0x4000000 cmp=[MY_ACTIVITY] (has extras) java.lang.SecurityException-不允许启动活动 Intent flg=0x4000000 cmp=[MY_ACTIVITY] (has extras) 【发布时间】:2014-08-26 01:34:50 【问题描述】:我在开始我的活动时遇到以下异常。
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), ...]
代码非常严格。 创建 Intent,使用 getPackageManager().queryIntentActivities 确保存在被此 Intent 过滤的活动并执行 startActivity(intent) 有什么想法吗?
【问题讨论】:
请发布完整的堆栈跟踪,以及您正在尝试做的一些代码。 你有关于你的问题的更新吗?有什么关于如何解决的吗?我们不时收到类似的崩溃报告。 @RicardoBelchior 嗨,这个问题不再发生了。它主要发生在我的应用程序中有 3rd 方 sdk 曾经在不同的进程中运行时。是他们这边的事情导致我的应用程序产生这些错误。对不起,它没有多大帮助。 有同样的问题,无法识别根本原因 【参考方案1】:查看源代码。我们可以发现异常的根本原因是ActivityManager.START_PERMISSION_DENIED
:
case ActivityManager.START_PERMISSION_DENIED:
throw new SecurityException("Not allowed to start activity "
+ intent);
因此,当另一个进程想要在您的应用程序中执行某些只能在内部访问的组件时,就会导致此异常。也就是说,调用者进程没有在你的组件的android:permission
属性中声明的权限,或者android:exported
属性设置为false。
【讨论】:
以上是关于java.lang.SecurityException-不允许启动活动 Intent flg=0x4000000 cmp=[MY_ACTIVITY] (has extras)的主要内容,如果未能解决你的问题,请参考以下文章