当我试图在android中启动一个新活动时,我收到了ActivityNotFoundException错误

时间:2013-04-09 08:36:27

标签: android android-activity manifest

我正在尝试从我的主要活动开始设置电子邮件帐户的活动。它没有工作,让我疯了。我所拥有的是:

button.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            EditText username = (EditText) findViewById(R.id.editText1);
            EditText password = (EditText) findViewById(R.id.editText2);

            ComponentName cname = new ComponentName("com.android.email",
            "com.android.email.activity.setup.AccountSetupBasics");
            Intent intent = new Intent("android.intent.action.MAIN");
            intent.putExtra("com.android.email.AccountSetupBasics.username", username.getText().toString());
            intent.putExtra("com.android.email.AccountSetupBasics.password", password.getText().toString());
            intent.putExtra("com.android.email.extra.eas_flow", true);
            intent.setComponent(cname);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    });

清单是:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.test.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

我总是得到这个错误:

android.content.ActivityNotFoundException:无法找到显式活动类{com.android.email/com.android.email.activity.setup.AccountSetupBasics};你有没有在AndroidManifest.xml中声明这个活动?

我是新手,谁能告诉我如何解决这个错误?

非常感谢任何回复。

2 个答案:

答案 0 :(得分:1)

如果导出了其他活动,则只能启动其他活动。检查com.android.email.activity.setup.AccountSetupBasics是否正确。并且您应该始终try/catch startActivity(),因为{{1}}可以抛出异常,原因更多,如果您将其置于未捕获状态,您的应用将崩溃

答案 1 :(得分:0)

button.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View v)
        {
            EditText username = (EditText) findViewById(R.id.editText1);
            EditText password = (EditText) findViewById(R.id.editText2);

            ComponentName cname = new ComponentName("com.android.email",
            "com.android.email.activity.setup.AccountSetupBasics");
            Intent intent = new Intent(currentActivity.this, targetActvity.class);
            intent.putExtra("com.android.email.AccountSetupBasics.username", username.getText().toString());
            intent.putExtra("com.android.email.AccountSetupBasics.password", password.getText().toString());
            intent.putExtra("com.android.email.extra.eas_flow", true);
            intent.setComponent(cname);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        }
    });