【问题标题】:android.content.ActivityNotFoundException: Unable to find explicit activity class - how to fix it?android.content.ActivityNotFoundException:无法找到明确的活动类 - 如何解决?
【发布时间】:2016-06-09 16:16:06
【问题描述】:

我有一个非常基本但令人讨厌的问题。我创建了新的活动并传递了移动到它们的意图。然而,当我传达两者时: MainMenu 和 EventCreationActivity,我得到以下错误:

android.content.ActivityNotFoundException:找不到明确的活动类{/com.mysampleapp.EventCreationActivity};您是否在 AndroidManifest.xml 中声明了此活动?

当我单独运行这些活动时,它们运行良好。 这是MainMenu的代码

   package com.mysampleapp;


import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;

//import com.amazon.mysampleapp.R;

public class MainMenu extends AppCompatActivity {
    //public final static String EXTRA_MESSAGE = "com.mysampleapp.MESSAGE";
    final Intent intent = new Intent(this, EventCreationActivity.class);
    Button newEvent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_menu);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        newEvent = (Button) findViewById(R.id.new_event_button);

        newEvent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(intent);
            }
        });

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }



}

和清单:

   <application
        android:name=".Application"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".SplashActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" />
        <activity
            android:name=".LogInActivity"
            android:label="@string/title_activity_log_in"
            android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainMenu"
            android:label="@string/title_activity_main_menu"

            android:theme="@style/AppTheme">
            <!--android:parentActivityName=".LogInActivity"-->
            <!--<meta-data-->
                <!--android:name="android.support.PARENT_ACTIVITY"-->
                <!--android:value="com.mysampleapp.LogInActivity" />-->
        </activity>
        <activity
            android:name=".MainDrawerActivity"
            android:label="@string/title_activity_main_drawer"
            android:theme="@style/AppTheme">
            <!--<meta-data-->
                <!--android:name="android.support.PARENT_ACTIVITY"-->
                <!--android:value="com.mysampleapp.MainMenu" />-->
        </activity>
        <activity
            android:name=".EventCreationActivity"
            android:label="@string/title_activity_event_creation"

            android:theme="@style/AppTheme">
            <!--android:parentActivityName=".MainMenu"-->
            <!--<intent-filter>-->
                <!--<action android:name="android.intent.action.MAIN" />-->
                <!--<category android:name="android.intent.category.DEFAULT" />-->
            <!--</intent-filter>-->
            <!--<meta-data-->
                <!--android:name="android.support.PARENT_ACTIVITY"-->
                <!--android:value="com.mysampleapp.MainMenu" />-->
        </activity>

如您所见,我在 Manifest 文件中注释了一些内容,但没有帮助。我还查看了其他类似的问题,但它们没有帮助。

提前致谢, 约翰

【问题讨论】:

  • 向我们展示 EventCreationActivity
  • 在按钮内创建你的意图 onclick newEvent.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainMenu.this, EventCreationActivity.class) ; startActivity(intent); } });
  • 确保清单中的包定义正确。 package="com.mysampleapp"' 。在此之后,您将必须拥有此包中的所有活动类。因此,在您当前的异常情况下,请确保您的 EventCreationActivity 在包内 com.mysampleapp 。提供EventCreationActivity 类和完整的manifest 如果它不起作用。

标签: android android-intent


【解决方案1】:

解决方案在您的问题中

have you declared this activity in your AndroidManifest.xml?

在你的清单中使用完整的包名和这样的类

android:name="com.mysampleapp.MainMenu"

【讨论】:

  • 我这样做了。我仍然得到同样的错误。我为 MainMenu 和 EventCreationActivity 都这样做了。
【解决方案2】:

在活动完成其生命周期方法之前,您正在实例化意图。这意味着您传递给Intent 构造函数的Context 无效。

通常,意图是在您使用它之前创建的:

newEvent.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainMenu.this, EventCreationActivity.class);
        startActivity(intent);
    }
});

【讨论】:

  • 我做不到,因为找不到活动,因此无法解决“this”
  • @JohnLeszcz 尝试使用MainMenu.this 而不是this
【解决方案3】:

John,您是否尝试过完整的 Activity 名称 com.mysampleapp.MainMenu?对所有活动执行此操作:your.package.ActivityName。

<activity
        android:name="com.mysampleapp.MainMenu"
        android:label="@string/title_activity_main_menu"

        android:theme="@style/AppTheme">
        <!--android:parentActivityName=".LogInActivity"-->
        <!--<meta-data-->
            <!--android:name="android.support.PARENT_ACTIVITY"-->
            <!--android:value="com.mysampleapp.LogInActivity" />-->
    </activity>

【讨论】:

    【解决方案4】:

    只要按照这些步骤,你一定能解决这个问题:

    1) 转到文件。 2)点击无效缓存/重新启动 3) 现在转到 AndroidManifest.xml,很可能您没有显示 您的活动上的红色标志。如果您在活动上看到红色,则将其删除并再次输入活动名称和包名。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2020-01-22
      • 2015-02-28
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多