You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AsyncTask Fragment中RecyclerView设置Adapter时触发空指针异常

解决RecyclerView.setAdapter()触发的NullPointerException问题

你的错误日志已经明确指向了问题核心:Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setAdapter(...)' on a null object reference——也就是说,你在onPostExecute里调用setAdapter()时,recyclerView对象是null。

问题根源

看你onCreateView方法里的这段代码:

// 1. get a reference to recyclerView
//recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);

这里你重新声明了一个局部的RecyclerView变量,而没有给类成员变量recyclerView赋值。局部变量会覆盖类成员的同名变量,导致类成员的recyclerView始终保持null状态。当异步任务的onPostExecute回调执行时,访问的是类成员的null对象,自然触发空指针异常。

修复方案

只需要去掉局部变量的类型声明,直接给类成员变量赋值即可:

// 去掉前面的RecyclerView,直接为类成员变量赋值
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);

修复后的完整onCreateView方法片段:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_rss, container, false);
    Toolbar toolbar = (Toolbar) view.findViewById(R.id.toolbar);
    //for crate home button
    AppCompatActivity activity = (AppCompatActivity) getActivity();
    activity.setSupportActionBar(toolbar);
    //toolbar.setTitle("News");
    activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    // 1. get a reference to recyclerView
    // 修复:直接给类成员变量赋值,不再声明局部变量
    recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
    // 2. set layoutManger
    recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
    // recyclerView.setLayoutManager(linearLayoutManager);
    loadRSS();
    return view;
}

这样修改后,类成员的recyclerView就会被正确初始化,onPostExecute里调用setAdapter()时就不会再出现空指针异常了。

内容的提问来源于stack exchange,提问作者tonatiuhNava

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:33:04