2013-04-21 35 views
0

我一直在尝试添加一个菜单到我的android应用程序,它不工作。当我点击“菜单”按钮时,应用程序停止工作。 这是我options_menu.xml文件:添加一个菜单到Android应用程序

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
    android:title="Profile" 
    android:id="@+id/menu_profile"/> 

    <item 
    android:title="About" 
    android:id="@+id/menu_about"/> 

</menu> 

这是我OptionsMenu.java类:

package com.carpool.jad; 

import android.app.ListActivity; 
import android.view.Menu; 
import android.view.MenuInflater; 

public class OptionsMenu extends ListActivity{ 

@Override 
public boolean onCreateOptionsMenu(android.view.Menu menu) { 
    // TODO Auto-generated method stub 
    super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 
    return true; 
} 

} 

这是我的错误日志:

04-21 13:22:09.389: D/skia(1365): --- decoder->decode returned false 

04-21 13:22:09.389: D/AndroidRuntime(1365): Shutting down VM 

04-21 13:22:09.401: W/dalvikvm(1365): threadid=1: thread exiting with uncaught exception (group=0x40a70930) 

04-21 13:22:09.479: E/AndroidRuntime(1365): FATAL EXCEPTION: main 

04-21 13:22:09.479: E/AndroidRuntime(1365): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.ExpandedMenuView 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at android.view.LayoutInflater.createView(LayoutInflater.java:613) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.view.menu.ListMenuPresenter.getMenuView(ListMenuPresenter.java:99) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.policy.impl.PhoneWindow$PanelFeatureState.getListMenuView(PhoneWindow.java:3417) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.policy.impl.PhoneWindow.initializePanelContent(PhoneWindow.java:1130) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.policy.impl.PhoneWindow.openPanel(PhoneWindow.java:578) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.policy.impl.PhoneWindow.onKeyUpPanel(PhoneWindow.java:847) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.policy.impl.PhoneWindow.onKeyUp(PhoneWindow.java:1520) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1854) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3701) 

04-21 13:22:09.479: E/AndroidRuntime(1365):  at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3651) 
+1

“停止工作”是什么意思?如果您的意思是您的应用程序崩溃了,请查看LogCat并检查与您的错误相关的Java堆栈跟踪。请注意,通常'onCreateOptionsMenu()'将首先膨胀菜单,然后是'return(super.onCreateOptionsMenu(menu));',而不是其他方式。 – CommonsWare 2013-04-21 13:20:28

+0

添加错误代码,日志猫 – 2013-04-21 13:20:48

+0

该应用程序崩溃。我添加了日志猫 – Jad 2013-04-21 13:25:00

回答

0

根据这一guide有当您覆盖该功能时不需要拨打super.onCreateOptionsMenu(menu)

尝试删除该行,看看它是否工作。

此外,检查这篇文章可能是您的问题:Android: What could cause an Options Menu inflation error?

+0

我试图删除该行,这不是问题。感谢您的链接我会检查出来 – Jad 2013-04-21 14:02:26

0

我创造了另一个项目和复制/从旧到新的粘贴我的所有代码和它的工作。不知道错误可能是什么。 感谢您的帮助球员。

0

您是否使用父母为“android:Theme.Material”的主题? 尝试更改为“Theme.AppCompat”,即使您的主题位于值-v21。

+0

对不起,但这真的解决了我在这里的问题,就像作者问,甚至是堆栈跟踪。 – 2015-02-26 12:17:12

相关问题