【发布时间】:2012-04-12 23:52:58
【问题描述】:
我想动态启动一个新的 Intent。因此setClassName 似乎是最好的选择。
首先,我在 Manifest 中定义了 3 个活动
<activity android:name="com.example.pkg2.Act" />
<activity android:name="com.example.pkg1.Act1" />
<activity android:name="com.example.pkg1.Act2" />
来自com.example.pkg2.Act:
Intent intent = new Intent();
if(index == 0) intent.setClassName(Act.this, "com.example.pkg1.Act1");
else intent.setClassName(Act.this, "com.example.pkg1.Act2");
startActivity(intent);
并且会得到这个异常:
Unable to find explicit activity class {com.example.pkg2.Act/com.example.pkg1.Act1}; have you declared this activity in your AndroidManifest.xml?
看起来我们只能使用setClassName 来动态启动新的Activity,但在同一个包中。
有解决这个问题的办法吗?感谢所有帮助。
【问题讨论】:
-
<activity android:name="com.example.pkg1.Act1" />将Act1更改为Act2 你已经两次声明Act1了? -
谢谢@imrankhan 复制粘贴是我的错:p
-
没关系,看我更新的答案。
-
您找到有效的解决方案了吗?