权限拒绝:启动意图

时间:2012-08-13 08:17:56

标签: android android-intent

在我的应用中,我必须使用Intent.setClassName或setComponent来启动另一个包中的活动。当我使用Intent.setClass时没有问题 Intent intent = new Intent(getApplicationContext(),org.iustb.knowledebase.animation.transparent.MainTransparentActivity.class); 在网络上解决这个问题的建议是在AndroidManifest中向目标活动添加或者android:exported =“true”,但它不起作用。 有人可以帮帮我吗?  我写了下面的代码:

Intent intent = new Intent();
intent.setClassName(cursor.getString(pIndex), cursor.getString(cIndex));
startActivity(intent);

目标活动的清单文件设置:

<activity android:name="org.iustb.knowledebase.animation.transparent.MainTransparentActivity"
                android:exported="true"></activity>

2 个答案:

答案 0 :(得分:0)

您确定cursor返回的值是否正确?

setClassName()的第一个参数应该是应用程序包名称,而不是活动开始的包。

假设应用程序包是:com.testandroid,但您想从com.testandroid.other包启动其他活动,那么您的代码应如下所示:

intent.setClassName("com.testandroid", "com.testandroid.other.OtherActivity");

答案 1 :(得分:0)

就我而言,package=com.example.myApplication 标签下的 AndroidManifest.xml 文件中的 <manifest>applicationId 模块下的 build.gradle:app 之间存在冲突1}} 标签。希望它会有所帮助。