Android:onBackPressed()导致应用程序崩溃

时间:2014-05-09 12:15:47

标签: android android-intent android-activity

我试图使用android提供的onBackPressed()方法来

我使用onBackPressed()方法的课程:

import com.interviewme.R;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class Preparing extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_preparation);

    }

    @Override
    public void onBackPressed() {
        Intent t = new Intent(this, Menu.class);
        startActivity(t);

    }

}

清单文件中我想回到的部分:

                                     

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

应用的完整清单文件:

 <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.interviewme"
        android:versionCode="1"
        android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="17" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.interviewme.Splash"
            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="com.interviewme.Play"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.PLAY" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.interviewme.Result"
            android:label="@string/title_activity_result" >
        </activity>
        <activity
            android:name=".Menu" 
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.interviewme.menu" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.interviewme.About"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.interviewme.InterviewTips"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="com.interviewme.Preparing"
            android:label="@string/app_name" >
        </activity>
    </application>

</manifest>

来自logcat的错误日志:

05-09 08:09:43.420: E/AndroidRuntime(1741): FATAL EXCEPTION: main
05-09 08:09:43.420: E/AndroidRuntime(1741): Process: com.interviewme, PID: 1741
05-09 08:09:43.420: E/AndroidRuntime(1741): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.interviewme/android.view.Menu}; have you declared this activity in your AndroidManifest.xml?
05-09 08:09:43.420: E/AndroidRuntime(1741):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
05-09 08:09:43.420: E/AndroidRuntime(1741):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
http://androidmanifest.xml/
androidmanifest.xml

我注意到它指出ActivityNotFound,但是这个Activity肯定在我的应用程序中,它是否在清单中命名不正确?

3 个答案:

答案 0 :(得分:2)

它选择Android默认菜单

删除此行

import android.view.Menu;

并导入您的课程或将您的班级名称菜单更改为其他名称(例如,Menu1)

答案 1 :(得分:0)

您导入了android.view.Menu。请尝试写出com.interviewme.Menu。还可以为您的活动使用更好的名称。菜单有点含糊不清。

答案 2 :(得分:0)

显示错误,因为如下: -

import android.view.Menu;

Intent t = new Intent(this, Menu.class);
        startActivity(t);

您的代码选择view.Menu。

你必须使用: -

Intent t = new Intent(this, com.interviewme.Menu.class);// where menu class here
        startActivity(t);