0

在我的应用程序中,我必须使用 Intent.setClassName 或 setComponent 来启动另一个包中的活动。当我使用 Intent.setClass 时没有问题 Intent intent = new Intent(getApplicationContext(), org.iustb.knowledebase.animation.transparent.MainTransparentActivity.class); 网上解决这个问题的建议是在AndroidManifest中的目标activity中添加or 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>
4

2 回答 2

0

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

的第一个参数setClassName()应该是应用程序包名,而不是Activity被启动的包名。

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

intent.setClassName("com.testandroid", "com.testandroid.other.OtherActivity");
于 2012-08-13T08:37:22.060 回答
0

package=com.example.myApplication在我的情况下,这是标签下的AndroidManifest.xml文件<manifest>和标签下applicationIdbuild.gradle:app模块之间的冲突 defaultConfig。希望它会有所帮助。

于 2020-12-27T06:35:10.553 回答