android.content.ActivityNotFoundException:

sha*_*ath 21 android android-manifest android-activity

当我试图从另一个活动中调用一个活动时,我收到此异常.完整的例外是

android.content.ActivityNotFoundException:无法找到显式活动类{com.xy/com.xyclass};

我正在做一个intent.setClass("com.x.y","com.x.y.className")where className活动类的名称,com.x.y它是它所在的包.

我的AndroidManifest.xml包含以下内容:

<activity android:name="com.x.y.className" android:label="@string/app_name">
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

Min*_*amy 32

也许您需要检查是否已将新活动添加到manifest.xml文件中

例:

<activity
      android:name=".className" 
      android:label="@string/app_name" > 
</activity>
Run Code Online (Sandbox Code Playgroud)


the*_*son 16

如果其他人遇到类似的东西并且到达这个帖子,我遇到的问题可能会为你节省一些时间.可能与OP的问题无关,但def与ActivityNotFound异常有关.

我试图通过使用以下方式加载活动:

Intent intent = new Intent( this, class );
Run Code Online (Sandbox Code Playgroud)

然而,ActivityNotFoundException即使我已经多次检查并重新检查代码,我仍然不断获得.

我得到的这个异常实际上并不是由意图引起的,而是我在加载的活动中运行的一些代码抛出了一个RuntimeException.(我的问题是由于Typeface.createFromAsset())

您可能在活动中遇到类似的RuntimeException.

要查看是否是这种情况,请将您的意图代码放在try catch块中.像这样:

try {
    /* your code */
    ...
} catch ( ActivityNotFoundException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

再次运行您的应用程序,并检查您的LogCat,如果它是同一个问题,您将获得一个RuntimeException,其中包含指向您实际问题的"引发者:"条目.

我花了一个小时试图解决这个问题.希望这可以节省一些时间.


Gan*_*nus 14

您调用的活动不仅应出现在Manifest中,而且还应出现在CALLING包的Manifest中.


小智 8

从清单中删除您的活动,然后重新添加.此类型不直接写入XML类型.而是转到Application > Application nodes > add,选择"活动",然后浏览文件源.

这对我有用.