Android: что может вызвать ошибку инфляции в меню параметров? - PullRequest
1 голос
/ 24 мая 2010

Я получаю ошибку инфляции при нажатии кнопки Меню и добавлении пункта меню в методе onCreateOptionsMenu.Я включил некоторые из ошибок ниже.

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

public boolean onCreateOptionsMenu(Menu m) {
    Log.d(TAG, "Menu Create");
    this.menu = m;
    m.add(0, 0, 0, "HAZAH!");
    return true;
}

05-24 17:18:47.963: ERROR/AndroidRuntime(1658): android.view.InflateException: Binary XML file line #17: Error inflating class com.android.internal.view.menu.IconMenuItemView 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at android.view.LayoutInflater.createView(LayoutInflater.java:513) 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at android.view.LayoutInflater.inflate(LayoutInflater.java:385)

05-24 17:18:47.963: ERROR/AndroidRuntime(1658): Caused by: java.lang.reflect.InvocationTargetException 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at com.android.internal.view.menu.IconMenuItemView.<init>(IconMenuItemView.java:86)

05-24 17:18:47.963: ERROR/AndroidRuntime(1658): Caused by: java.lang.reflect.InvocationTargetException 05-24 17:18:47.963: ERROR/AndroidRuntime(1658): at com.android.internal.view.menu.IconMenuItemView.<init>(IconMenuItemView.java:86)


Если я пытаюсь нажать Меню с подключенным отладчиком, я вижу, что здесь остановка:

Suspended (exception InflateException)
ViewRoot.deliverKeyEventToViewHierarchy(KeyEvent, boolean) line: 2425   

Спасибо.

Ответы [ 3 ]

1 голос
/ 25 мая 2010

Это происходило, когда я назначил тему для Действия, которая содержала следующую строку:

<item name="android:text"></item>

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

0 голосов
/ 13 апреля 2011

См Как изменить цвет фона меню параметров? если вы получаете это исключение из-за программного изменения фона вашего меню.

0 голосов
/ 24 мая 2010

Не используйте 0 для идентификатора меню. Используйте Menu.FIRST+1 или что-то еще. Я бы также использовал Menu.NONE для двух других 0 параметров.

Кроме того, не возвращайте true - return(super.onCreateOptionsMenu(Menu m)).

...