android.content.ActivityNotFoundException:找不到显式活动类{};您是否在AndroidManifest.xml中声明了此活动?
这是一个场景:我在同一个项目中有两个不同的包。 当我试图从packagecom.stable.app ActivityA启动vía intentActivityB(在com.stable.app.in中)时,我遇到了这个错误。我想我的舱单还行,但似乎是错的。我的舱单是:android.content.ActivityNotFoundException:找不到显式活动类{};您是否在AndroidManifest.xml中声明了此活动?,android,android-activity,Android,Android Activity,这是一个场景:我在同一个项目中有两个不同的包。 当我试图从packagecom.stable.app ActivityA启动vía intentActivityB(在com.stable.app.in中)时,我遇到了这个错误。我想我的舱单还行,但似乎是错的。我的舱单是: <activity android:name=".in.Principal"> <intent-filter> <action android:name="android.inten
<activity android:name=".in.Principal">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
我尝试了很多其他主题的建议。这些是:
给出完整的包裹路径清单。
试着切断主管道、发射器等。
还有很多
如果你有同样的问题,或者有一个有效的解决方案,不要急着回答
根据您的要求,您申报了多少件包裹
这取决于您的项目需求。您需要指定
清单文件中的活动名称以及完整的程序包名称
假设在你的情况下,你的主体就是你的活动
com.stable.app.in。因此,在清单文件中,您需要
申报
如上所述
你让这有点复杂。如果要在项目中启动另一个活动,可以使用以下代码段:
final Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
这是一种更简短、更重要的方式,您不会将活动名称用作字符串。这样,当您重构IDE中的活动类名时,它也可以更改代码。当使用字符串名时,大多数IDE不会更改它
您还必须确保在清单文件中声明的活动是正确的。您不需要使用完整的类名,但是如果您使用
.in.Principal
请确保清单文件的包是com.stable.app
将清单包名称更改为“com.stable.app”。您的活动A位于com.stable.app包下,而活动B位于com.stable.app.in包下。对吗,已经有解决方案了,下面评论道,谢谢!最后,我这样做了:最终意图=新意图(getApplicationContext(),Principal.class);感谢大家,Tim Roes,你是对的,我不得不将字符串名称更改为:final-Intent-Intent=new-Intent(getApplicationContext(),Principal.class);同样,导入com.stable.app.in.Principal仍然理解为什么它不能作为“字符串”工作:intent.setClassName(“com.stable.app.in”,“com.stable.app.in.Principal”);您应该已经删除了setAction()
和setCategory()
调用。您传递给intent的那些用于intent,也就是启动器用于启动应用程序的intent。所以你不应该把它们用于内部活动切换。(当您的清单文件是正确的时,它也应该与它们一起工作。)尝试了这么多之后,final-Intent-Intent=new-Intent(getApplicationContext(),Principal.class);工作。谢谢user1427871@user14278713个小时后,你的评论帮我弄明白了这一点。非常感谢。
<activity android:name="com.stable.app.in.Principal">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
final Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);