Java 我的应用程序崩溃,试图添加菜单
我在hello world的一个简单应用程序中添加了一个菜单!但我的应用程序一直崩溃。 我没有添加我的xml代码。我的xml文件名是res中menu文件夹中的menu。 这是我的java文件 MyActivity.javaJava 我的应用程序崩溃,试图添加菜单,java,android,performance,menu,Java,Android,Performance,Menu,我在hello world的一个简单应用程序中添加了一个菜单!但我的应用程序一直崩溃。 我没有添加我的xml代码。我的xml文件名是res中menu文件夹中的menu。 这是我的java文件 MyActivity.java public boolean onCreateOptionsMenu(Menu menu1){ MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu,menu1);
public boolean onCreateOptionsMenu(Menu menu1){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu,menu1); //line 19
return true;
}
Logcat
06-03 18:03:57.682 13542-13542/com.example.kaushalraj.a424 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.kaushalraj.a424, PID: 13542
android.view.InflateException: Couldn't resolve menu item onClick handler action in class com.example.kaushalraj.a424.MainActivity
at android.support.v7.view.SupportMenuInflater$InflatedOnMenuItemClickListener.<init>(SupportMenuInflater.java:253)
at android.support.v7.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:481)
at android.support.v7.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:529)
at android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:205)
at android.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:127)
at com.example.kaushalraj.a424.MainActivity.onCreateOptionsMenu(MainActivity.java:19)
at android.app.Activity.onCreatePanelMenu(Activity.java:3388)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:364)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:93)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:332)
at android.support.v7.app.AppCompatDelegateImplV9.preparePanel(AppCompatDelegateImplV9.java:1377)
at android.support.v7.app.AppCompatDelegateImplV9.doInvalidatePanelMenu(AppCompatDelegateImplV9.java:1657)
at android.support.v7.app.AppCompatDelegateImplV9$1.run(AppCompatDelegateImplV9.java:134)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NoSuchMethodException: action [interface android.view.MenuItem]
at java.lang.Class.getMethod(Class.java:2068)
at java.lang.Class.getMethod(Class.java:1690)
at android.support.v7.view.SupportMenuInflater$InflatedOnMenuItemClickListener.<init>(SupportMenuInflater.java:249)
at android.support.v7.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:481)
at android.support.v7.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:529)
at android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:205)
at android.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:127)
at com.example.kaushalraj.a424.MainActivity.onCreateOptionsMenu(MainActivity.java:19)
at android.app.Activity.onCreatePanelMenu(Activity.java:3388)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:364)
at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:93)
at android.support.v7.app.AppCompatDelegateImplBase$AppCompatWindowCallbackBase.onCreatePanelMenu(AppCompatDelegateImplBase.java:332)
at android.support.v7.app.AppCompatDelegateImplV9.preparePanel(AppCompatDelegateImplV9.java:1377)
at android.support.v7.app.AppCompatDelegateImplV9.doInvalidatePanelMenu(AppCompatDelegateImplV9.java:1657)
at android.support.v7.app.AppCompatDelegateImplV9$1.run(AppCompatDelegateImplV9.java:134)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
06-03 18:03:57.682 13542-13542/com.example.kaushalraj.a424 E/AndroidRuntime:致命异常:main
流程:com.example.kaushalraj.a424,PID:13542
android.view.InflateException:无法解析com.example.kaushalraj.a424.MainActivity类中单击处理程序操作的菜单项
在android.support.v7.view.SupportMenuInflater$InflatedOnMenuItemClickListener上。(SupportMenuInflater.java:253)
位于android.support.v7.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:481)
位于android.support.v7.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:529)
在android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:205)中
在android.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:127)中
位于com.example.kaushalraj.a424.MainActivity.onCreateOptions菜单(MainActivity.java:19)
位于android.app.Activity.onCreatePanelMenu(Activity.java:3388)
位于android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:364)
在android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:93)中
位于android.support.v7.app.AppCompateDelegateImplbase$AppCompateWindowCallBackbase.onCreatePanelMenu(AppCompateDelegateImplbase.java:332)
在android.support.v7.app.AppCompateDelegateImplV9.preparePanel(AppCompateDelegateImplV9.java:1377)
在android.support.v7.app.AppCompateDelegateImplv9.doInvalidatePanelMenu(AppCompateDelegateImplv9.java:1657)中
在android.support.v7.app.appcompatedelegateimplv9$1.run(appcompatedelegateimplv9.java:134)
位于android.os.Handler.handleCallback(Handler.java:790)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6494)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
原因:java.lang.NoSuchMethodException:action[接口android.view.MenuItem]
位于java.lang.Class.getMethod(Class.java:2068)
位于java.lang.Class.getMethod(Class.java:1690)
在android.support.v7.view.SupportMenuInflater$InflatedOnMenuItemClickListener上。(SupportMenuInflater.java:249)
位于android.support.v7.view.SupportMenuInflater$MenuState.setItem(SupportMenuInflater.java:481)
位于android.support.v7.view.SupportMenuInflater$MenuState.addItem(SupportMenuInflater.java:529)
在android.support.v7.view.SupportMenuInflater.parseMenu(SupportMenuInflater.java:205)中
在android.support.v7.view.SupportMenuInflater.inflate(SupportMenuInflater.java:127)中
位于com.example.kaushalraj.a424.MainActivity.onCreateOptions菜单(MainActivity.java:19)
位于android.app.Activity.onCreatePanelMenu(Activity.java:3388)
位于android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:364)
在android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:93)中
位于android.support.v7.app.AppCompateDelegateImplbase$AppCompateWindowCallBackbase.onCreatePanelMenu(AppCompateDelegateImplbase.java:332)
在android.support.v7.app.AppCompateDelegateImplV9.preparePanel(AppCompateDelegateImplV9.java:1377)
在android.support.v7.app.AppCompateDelegateImplv9.doInvalidatePanelMenu(AppCompateDelegateImplv9.java:1657)中
在android.support.v7.app.appcompatedelegateimplv9$1.run(appcompatedelegateimplv9.java:134)
位于android.os.Handler.handleCallback(Handler.java:790)
位于android.os.Handler.dispatchMessage(Handler.java:99)
位于android.os.Looper.loop(Looper.java:164)
位于android.app.ActivityThread.main(ActivityThread.java:6494)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
我不知道这是否是你的案例(我也没有评论的名声),但是:你在使用什么应用程序主题?如果您使用的主题顶部没有actionbar,那么当您尝试将菜单附加到主题时,会出现此错误,因为actionbar不存在
您有两种解决方案:
setSupportActionBar(myToolbar)
。这会将您的工具栏视图设置为菜单将附加到的操作栏这是你粘贴的完整日志吗?如果没有,请粘贴完整的日志。您还说您的菜单文件名是
menu
。还是在第19行“充气机.充气(R.menu.menu,menu1);”真的有逗号吗?如果菜单名为menu1,则应该是dot(.)@ravi no,它不是完整的日志替换充气器。充气器充气(R.menu.menu,menu1)。充气(R.menu.menu1,menu)和oncreateoptions菜单(menu menu1)带有oncreateoptions菜单(menu menu菜单)。KaushalRaj请进行更改并粘贴完整的日志。不,我添加了工具栏。