显示OptionsMenu时出现NullPointerException

Nek*_*cer 3 android xamarin

我需要以编程方式创建菜单(与选项卡列表完全相同),以便为我的应用程序中的导航提供支持.所以我做了那样的代码

public override bool OnCreateOptionsMenu (IMenu menu)
{
    base.OnCreateOptionsMenu (menu);
    for (int i = 0; i < fragmentsTabs.Count; i++) {
        menu.Add(0,100 + i,i,new Java.Lang.String(fragmentsTabs.GetItem(i).Key));
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我点击菜单按钮时,我得到一个例外:

[AndroidRuntime] java.lang.NullPointerException
[AndroidRuntime]    at android.support.v7.internal.view.menu.ListMenuItemView.setTitle(ListMenuItemView.java:117)
[AndroidRuntime]    at android.support.v7.internal.view.menu.ListMenuItemView.initialize(ListMenuItemView.java:104)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHelper$MenuAdapter.getView(MenuPopupHelper.java:377)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHelper.measureContentWidth(MenuPopupHelper.java:219)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:153)
[AndroidRuntime]    at android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:752)
[AndroidRuntime]    at android.os.Handler.handleCallback(Handler.java:733)
[AndroidRuntime]    at android.os.Handler.dispatchMessage(Handler.java:95)
[AndroidRuntime]    at android.os.Looper.loop(Looper.java:136)
[AndroidRuntime]    at android.app.ActivityThread.main(ActivityThread.java:5017)
[AndroidRuntime]    at java.lang.reflect.Method.invokeNative(Native Method)
[AndroidRuntime]    at java.lang.reflect.Method.invoke(Method.java:515)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
[AndroidRuntime]    at dalvik.system.NativeStart.main(Native Method)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHel08.448 W/ActivityManager(  575):   Force finishing activity pl.media30.android.parlament/aplikacjaparlamentandroid.PersonDetailsActivity
Run Code Online (Sandbox Code Playgroud)

我正在使用支持库中的工具栏:

Toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
SetSupportActionBar(Toolbar);
SupportActionBar.SetHomeButtonEnabled(true);
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)

在另一部手机上,我获得了有关NullPointerException的更多信息:

[AndroidRuntime] java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
[AndroidRuntime]    at android.support.v7.internal.view.menu.ListMenuItemView.setTitle(ListMenuItemView.java:117)
[AndroidRuntime]    at android.support.v7.internal.view.menu.ListMenuItemView.initialize(ListMenuItemView.java:104)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHelper$MenuAdapter.getView(MenuPopupHelper.java:377)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHelper.measureContentWidth(MenuPopupHelper.java:219)
[AndroidRuntime]    at android.support.v7.internal.view.menu.MenuPopupHelper.tryShow(MenuPopupHelper.java:153)
[AndroidRuntime]    at android.support.v7.widget.ActionMenuPresenter$OpenOverflowRunnable.run(ActionMenuPresenter.java:752)
[AndroidRuntime]    at android.os.Handler.handleCallback(Handler.java:739)
[AndroidRuntime]    at android.os.Handler.dispatchMessage(Handler.java:95)
[AndroidRuntime]    at android.os.Looper.loop(Looper.java:135)
[AndroidRuntime]    at android.app.ActivityThread.main(ActivityThread.java:5221)
[AndroidRuntime]    at java.lang.reflect.Method.invoke(Native Method)
[AndroidRuntime]    at java.lang.reflect.Method.invoke(Method.java:372)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么没有创建TextView?可能是个问题.我在这个活动中有很多片段,但是没有它们正在使用菜单.如果我创建单个图标,例如搜索,一切正常.图标已正确创建并且onclick处理得很好.仅当菜单项未显示为操作时才会出现问题

@编辑

我的工具栏的axml是:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary">
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:scaleType="fitEnd"
        android:src="@drawable/side" />
</android.support.v7.widget.Toolbar>
Run Code Online (Sandbox Code Playgroud)

Thp*_*mos 5

大约2个小时我遇到了同样的麻烦.然后尝试了一切后,我决定"全部清理"项目.在我这样做之后,一切都像魅力一样.我在项目中改变的另一件事可能有用,就是用Support.v4替换所有正常的Fragment导入.

希望能帮助到你!