Мое приложение вылетает, пытаясь добавить меню - PullRequest
0 голосов
/ 03 июня 2018

Я добавил меню в простом приложении Hello World!Но мое приложение продолжает падать.Я не добавляю свой код XML.Мое имя XML-файла - это меню внутри папки меню в res.Вот мой файл Java.

MyActivity.java

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) 

1 Ответ

0 голосов
/ 03 июня 2018

Я не знаю, если это ваш случай (и у меня нет репутации, чтобы комментировать), но: Какую тему приложения вы используете?Если вы используете тему, в верхней части которой нет панели действий, вы получите эту ошибку при попытке присоединить к ней свое меню, так как панель действий не существует.

У вас есть два решения:

  1. Проверьте вашу тему в файле res / values ​​/ styles.xml, если вы используете что-то вроде Theme.AppCompat.Light.NoActionBar вы должны изменить его на что-то вроде Theme.AppCompat.Light.DarkActionBar .Это добавит панель действий к вашей активности.

  2. Используя библиотеку панели поддержки, добавьте панель инструментов в свой макет xml активности, затем из своего класса активности получите представление в OnCreate () и используйте setSupportActionBar(myToolbar).Это установит вид панели инструментов как панель действий, к которой будет прикреплено ваше меню.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...