android应用程序强制关闭

时间:2014-05-09 02:53:57

标签: android eclipse android-intent forceclose

我有一个小菜单,上面有一个“关于”的按钮。当我按下它时,应用程序强制关闭。 logcat说没有找到处理意图的活动,但我不确定为什么。它在清单中声明如下

<activity
            android:name=".About"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.androidsleepmachine.gamble.About" />

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

意图从代码开始

   case R.id.About:
    Intent i = new Intent("com.androidsleepmachine.gamble.About");
    startActivity(i);
    break;

Logcat文件

05-08 23:13:19.258:E / AndroidRuntime(15746):致命异常:主要 05-08 23:13:19.258:E / AndroidRuntime(15746):android.content.ActivityNotFoundException:找不到处理Intent的活动{act = com.androidsleepmachine.gamble.About} 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545) 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Instrumentation.execStartActivity(Instrumentation.java:1416) 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Activity.startActivityForResult(Activity.java:3389) 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Activity.startActivityForResult(Activity.java:3350) 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Activity.startActivity(Activity.java:3562) 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Activity.startActivity(Activity.java:3528) 05-08 23:13:19.258:E / AndroidRuntime(15746):at com.androidsleepmachine.gamble.Home.onOptionsItemSelected(Home.java:83) 05-08 23:13:19.258:E / AndroidRuntime(15746):在android.app.Activity.onMenuItemSelected(Activity.java:2566) 05-08 23:13:19.258:E / AndroidRuntime(15746):at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:978) 05-08 23:13:19.258:E / AndroidRuntime(15746):at com.android.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:735) 05-08 23:13:19.258:E / AndroidRuntime(15746):at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:149) 05-08 23:13:19.258:E / AndroidRuntime(15746):at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:874) 05-08 23:13:19.258:E / AndroidRuntime(15746):at com.android.internal.view.menu.ListMenuPresenter.onItemClick(ListMenuPresenter.java:166)

3 个答案:

答案 0 :(得分:1)

试试这个,

    Intent i = new Intent(this,About.class);
// you may need to end this current activity if you dont want to use it anymore, just add `flags` to the intent 
startActivity(i);

在您的联系人android:name=同时点击controlspace并从那里选择您的班级,以避免任何有关指向您班级的问题。

答案 1 :(得分:0)

更改名称。

<activity
        android:name="com.androidsleepmachine.gamble.About"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

答案 2 :(得分:0)

日志清楚地显示了问题。

您正试图启动名为Activity的{​​{1}}

com.AndroidSleepSounds.gamble.About

但是,它不在Manifest中。

 com.AndroidSleepSounds.gamble.About

这是不同的班级名称。将其更改为

 android:name="com.androidsleepmachine.gamble.About"