【发布时间】: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如果它不起作用。