空对象引用上的 Void android.widget.TextView.setText(java.lang.CharSequence)'

Void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference

一开始 - 我尝试了所有解决方案。

这是错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
                  at com.justfashion.ActivityMainWallet.onCreate(ActivityMainWallet.java:211)`

ActivityMainWallet.java:210-212行:

TextView navigationTotalCreditTextView = (TextView)mDrawerLay.findViewById(R.id.nav_drawer_total_credits);
    navigationTotalCreditTextView.setText("Total Credits: " + PreferenceConnector.readInteger(aiContext,
            PreferenceConnector.WALLETPOINTS,""));

XML:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff" >

    <TextView
        android:id="@+id/nav_drawer_wallet_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:textColor="@color/md_white_1000"
        android:textSize="@dimen/twentyfive" />
    <TextView
        android:id="@+id/nav_drawer_total_credits"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:textColor="@color/md_white_1000"
        android:textSize="@dimen/twentyfive" />
    <TextView
        android:id="@+id/nav_drawer_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:gravity="center"
        android:textColor="@color/md_white_1000"
        android:textSize="@dimen/twentyfive" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout android:id="@+id/content_frame_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#ffffff"
            android:layout_below="@+id/toolbar_app_bar_layout">

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
            </FrameLayout>

        </RelativeLayout>

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/toolbar_app_bar_layout" />

        <android.support.design.widget.AppBarLayout
            android:id="@+id/toolbar_app_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

            <include android:id="@+id/toolbar"
                layout="@layout/toolbar" />

            <android.support.design.widget.TabLayout
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/sliding_tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/toolbar"
                app:tabMode="scrollable"
                app:paddingStart="16dp"
                app:tabPaddingStart="16dp"
                app:tabPaddingEnd="16dp"
                app:tabMinWidth="96dp"
                app:tabGravity="center" />

        </android.support.design.widget.AppBarLayout>

    </RelativeLayout>

    <android.support.design.widget.NavigationView
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/navigation_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="start"
        android:background="@color/md_white_1000"
        app:headerLayout="@layout/nav_drawer_header"
        app:menu="@menu/menu_drawer"
        app:itemTextAppearance="@style/TextAppearance.AppCompat.Menu"
        android:clipToPadding="false">

        <!--<FrameLayout-->
            <!--android:layout_width="match_parent"-->
            <!--android:layout_height="wrap_content"-->
            <!--android:layout_gravity="bottom"-->
            <!--android:background="@color/md_white_1000"-->
            <!--android:elevation="4dp"-->
            <!--android:layout_marginBottom="-96dp">-->

            <!--<Button android:id="@+id/navigation_button_footer"-->
                <!--android:layout_width="match_parent"-->
                <!--android:layout_height="match_parent"-->
                <!--android:text=""-->
                <!--android:textSize="13sp"-->
                <!--android:textColor="@color/md_grey_800"-->
                <!--android:lines="3"-->
                <!--android:gravity="center"-->
                <!--style="@style/Widget.AppCompat.ActionButton"-->
                <!--android:paddingTop="20dp"-->
                <!--android:paddingLeft="20dp"-->
                <!--android:paddingRight="20dp"-->
                <!--android:paddingBottom="20dp"/>-->

        <!--</FrameLayout>-->

    </android.support.design.widget.NavigationView>

    <RelativeLayout
        android:id="@+id/lay_connection"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="@dimen/actmain_margintop"
        android:background="#3c3c3c"
        android:visibility="gone" >

        <TextView
            android:id="@+id/text_error"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:gravity="center"
            android:text="@string/error_no_internet"
            android:textColor="@color/md_white_1000"
            android:textSize="@dimen/twentyfive" />


        <RelativeLayout
            android:id="@+id/lay_dialog"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone" >

            <ProgressBar
                android:id="@+id/progressBar1"
                style="?android:attr/progressBarStyleLarge"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/progressBar1"
                android:layout_centerHorizontal="true"
                android:text="@string/error_no_internet"
                android:textColor="@color/md_white_1000"
                android:textSize="@dimen/twentyfive" />
        </RelativeLayout>
    </RelativeLayout>

</android.support.v4.widget.DrawerLayout>

我什么都试过了。 PreferenceConnector 有问题吗?这是 PreferenceConnection.java 中的 PreferenceConnector.WALLETPOINTS,""))

public static final String  WALLETPOINTS            = "walletpoints";

请大家帮忙!我尝试了所有解决方案,但没有人在使用 PreferanceConnector 时遇到此错误。

#编辑

已解决,但现在出现此错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.Toolbar.setTitle(java.lang.CharSeq‌​uence)' on a null object reference at com.justfashion.ActivityMainWallet.onCreate(ActivityMainWall‌​et.java:251)

试试这个;

TextView navigationTotalCreditTextView = (TextView)findViewById(R.id.nav_drawer_total_credits);
navigationTotalCreditTextView.setText("Total Credits: " + PreferenceConnector.readInteger(aiContext,
        PreferenceConnector.WALLETPOINTS,""));

问题是您在错误的视图中搜索 TextView。

你做到了:

TextView navigationTotalCreditTextView = (TextView)mDrawerLay.findViewById(R.id.nav_drawer_total_credits);

但文本视图在 mDrawerLayout 中。请参阅下文以及您的 xml.

mDrawerLayout   = (DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerLay      = (NavigationView)findViewById(R.id.navigation_view);

要解决此问题,请执行以下操作:

TextView navigationTotalCreditTextView = (TextView)mDrawerLayout.findViewById(R.id.nav_drawer_total_credits);

我也有这个问题。这需要我很多时间。经过一天的工作和无助的搜索后,我发现我有两个布局来自两个不同 API 级别的布局,我必须为它们更改 TextView id 最后我解决了它我希望它对其他人有帮助像我一样遇到麻烦的人