使用recycleler在android Studio中获取NullPointerException

Sho*_*ahd 2 java arrays android nullpointerexception

我是新来的.我按照教程使用RecyclerView创建了一个卡片列表.该应用程序在启动时崩溃,日志显示:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wc.gap.worldcupfixture/com.wc.gap.worldcupfixture.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)' on a null object reference

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setHasFixedSize(boolean)' on a null object reference
 at com.wc.gap.worldcupfixture.MainActivity.onCreate(MainActivity.java:78)
Run Code Online (Sandbox Code Playgroud)

代码片段:

//Variables
private static RecyclerView.LayoutManager mLayoutManager;
private static RecyclerView mRecyclerView;
private static RecyclerView.Adapter mAdapter;
private static ArrayList < Integer > removedItems;
private static ArrayList < MatchData > matches;
static View.OnClickListener myOnClickListener;
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

//error here:
mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

//Line 78:
mRecyclerView.setHasFixedSize(true);

mLayoutManager = new LinearLayoutManager(this);
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
Run Code Online (Sandbox Code Playgroud)

我从本教程中选择了代码.2个数组,'匹配'包含有关板球比赛的信息,它们显示为卡片.当它们被解雇时,它们会填充第二个数组'removedItems'.第二个数组用于将删除的匹配信息添加回第一个数组.

当我删除该行时,第80行显示相同的错误,然后是81.错误仍然存​​在,但在删除第81行后,错误日志中未显示特定的行号.如果它有帮助:填充数组匹配,我已经对教程的代码进行了一些调整,但我无法确定问题.究竟布尔值如何为空,或者错误是什么意思?

提前致谢.如果需要,我可以发布我的整个代码.

编辑:更多脚本:

private static RecyclerView.LayoutManager mLayoutManager;
    private static RecyclerView mRecyclerView;
    private static RecyclerView.Adapter mAdapter;
    private static ArrayList<Integer> removedItems;
    private static ArrayList<MatchData> matches;
    static View.OnClickListener myOnClickListener;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myOnClickListener = new MyOnClickListener(this);
        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
        mRecyclerView.setHasFixedSize(true);
        mLayoutManager = new LinearLayoutManager(this);
        mRecyclerView.setLayoutManager(mLayoutManager);
        mRecyclerView.setItemAnimator(new DefaultItemAnimator());

        matches = new ArrayList<>();
        for (int i = 0; i < MyData.matchArray.length; i++){
            matches.add(new MatchData(
                    MyData.matchArray[i],
                    MyData.timingArray[i],
                    MyData.venueArray[i],
                    MyData.id_[i]
            ));
        }

        removedItems = new ArrayList<>();

        mAdapter = new MyAdapter(matches);
        mRecyclerView.setAdapter(mAdapter);

        //other things after
    }
Run Code Online (Sandbox Code Playgroud)

Activity_main.

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


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


    <fragment android:id="@+id/navigation_drawer"
        android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent"
        android:layout_gravity="start"
        android:name="com.wc.gap.worldcupfixture.NavigationDrawerFragment"
        tools:layout="@layout/fragment_navigation_drawer" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

Sim*_*mas 15

mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
Run Code Online (Sandbox Code Playgroud)

findViewByIdnull因为你还没有打电话回到这里setContentView.所有这一切都应该在onCreate.

编辑:

布局中没有RecylerViewid my_recycler_view.

您的教程告诉您添加它:

在此输入图像描述

我不确定你是怎么错过它的.