在我的应用中,我必须使用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>
答案 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}} 标签。希望它会有所帮助。