0

When I touch the hardware setting menu my app crashed. I search on the internet and found this code:

@Override
public boolean onKeyDown(int keycode, KeyEvent e) {
    if (keycode == KeyEvent.KEYCODE_SETTINGS) { //ignore settings key         
        return true;
    } else {
        return super.onKeyDown(keycode, e);
    }
}

I use this code in my app But don't work.

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.collection__list_, menu);
    return true;
}

stack trace:

FATAL EXCEPTION: main Process: com.example.nabege, PID: 5944                                   java.lang.NullPointerException                                       
    at    android.support.v7.app.ActionBarImplICS.setDisplayHomeAsUpEnabled(ActionBarImplICS.java:179)
    at    android.support.v7.app.ActionBarImplJB.setDisplayHomeAsUpEnabled(ActionBarImplJB.java:20)
    at    android.support.v7.app.ActionBarActivityDelegate.getSupportActionBar(ActionBarActivityDelegate.java:86)
    at    android.support.v7.app.ActionBarActivityDelegate.getActionBarThemedContext(ActionBarActivityDelegate.java:206)
    at    android.support.v7.app.ActionBarActivityDelegate.getMenuInflater(ActionBarActivityDelegate.java:98)
    at    android.support.v7.app.ActionBarActivity.getMenuInflater(ActionBarActivity.java:71)
    at    com.example.nabege.Collection_List_Activity.onCreateOptionsMenu(Collection_List_Activity.java:202)    at android.app.Activity.onCreatePanelMenu(Activity.java:2625)       
    at    android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:224)
    at    android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:232)
    at    android.support.v7.app.ActionBarActivityDelegateICS.onCreatePanelMenu(ActionBarActivityDelegateICS.java:146)
    at    android.support.v7.app.ActionBarActivity.onCreatePanelMenu(ActionBarActivity.java:199)    at    android.support.v7.app.ActionBarActivityDelegateICS$WindowCallbackWrapper.onCreatePanelMenu(ActionBarActivityDelegateICS.java:293)
    at    com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:505)
    at    com.android.internal.policy.impl.PhoneWindow.onKeyDownPanel(PhoneWindow.java:894)
    at    com.android.internal.policy.impl.PhoneWindow.onKeyDown(PhoneWindow.java:1671)
    at    com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2181)
    at    android.view.ViewRootImpl$ViewPostImeInputStage.processKeyEvent(ViewRootImpl.java:4492)
    at    android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4459)
    at    android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024) 
    at    android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
    at    android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047) 
    at    android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4158)
    at    android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4055)
    at    android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4215)
    at    android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024) 
    at    android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
    at    android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047) 
    at    android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4055)
    at    android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4024) 
    at    android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4078)
    at    android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4047) 
    at    android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4191)
    at    android.view.ViewRootImpl$ImeInputStage.onFinishedInputEvent(ViewRootImpl.java:4351)
    at    android.view.inputmethod.InputMethodManager$PendingEvent.run(InputMethodManager.java:2257)
    at    android.view.inputmethod.InputMethodManager.invokeFinishedInputEventCallback(InputMethodManager.java:1907)
    at    android.view.inputmethod.InputMethodManager.finishedInputEvent(InputMethodManager.java:1898)
    at    android.view.inputmethod.InputMethodManager$ImeInputEventSender.onInputEventFinished(InputMethodManager.java:2234)
    at    android.view.InputEventSender.dispatchInputEventFinished(InputEventSender.java:141)
    at android.os.MessageQueue.nativePollOnce(Native Method)            
    at android.os.MessageQueue.next(MessageQueue.java:138)              
    at android.os.Looper.loop(Looper.java:123)                          
    at android.app.ActivityThread.main(ActivityThread.java:5356)        
    at java.lang.reflect.Method.invokeNative(Native Method)             
    at java.lang.reflect.Method.invoke(Method.java:515)                 
    at    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)    
    at dal
Jolson Da Costa
  • 1,095
  • 1
  • 12
  • 31
hmahdavi
  • 2,250
  • 3
  • 38
  • 90

2 Answers2

0

this error could be from your R.menu.collection__list , there is something wrong in it, i had a similar problem with this , and that was low heap memory of phone when it want's to lunch a dialog or activity or menu , for that , i had to lower the resolution of background image and other pictures in my layout and it got fixed. hope that help you too.

Pirisok
  • 401
  • 3
  • 9
0

It looks like you are hiding the action bar.

So getSupportActionBar() is returning null. Then you try to access it, either on purpose, or the system does, to set Home As Up.

That causes the NullPointerError.

If you don't hide the action bar, does the app work?

Richard Le Mesurier
  • 29,432
  • 22
  • 140
  • 255