SLaks 2013-04-26 03:26 采纳率: 0%
浏览 18731
已采纳

使用不同包通过setClassName不能启动新的 intent

我想动态的启动一个新的 intent,因此 setClassName 是一个很好的选择。
首先,在Manifest中定义3个activity:

<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,还必须的在相同的包中。
如何处理这个问题?

  • 写回答

4条回答 默认 最新

  • 80后VS烦恼 2013-04-27 03:27
    关注

    intent.setClassName(Act.this, Act1.class);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置