代码之家  ›  专栏  ›  技术社区  ›  Josteve Adekanbi

指向定义的RecyclerView的空指针异常

  •  0
  • Josteve Adekanbi  · 技术社区  · 5 年前

    我还在调用我的异常,但我在调用它之前,还在调用我的异常

    我的布局是活动_主.xml

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:id="@+id/recyclerView"
            android:layout_marginTop="8dp"
            android:visibility="gone"/>
    

    我的爪哇主活动.java(创建时)

     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        recyclerView = findViewById(R.id.recyclerView);
    
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setHasFixedSize(true);
    
    }
    

    : 致命异常:主 java.lang.RuntimeException:无法启动活动组件信息{示例.com.atry.example.atry.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法“void”安卓支持.v7版。widget.RecyclerView.setLayoutManager(安卓支持.v7版。widget.RecyclerView$LayoutManager)'(在空对象引用上) 在android.app.ActivityThread.手足活动(ActivityThread.java:3258) 在android.app.servertransaction.TransactionExecutor.executeCallbacks(事务执行器.java:108) 在android.app.servertransaction.TransactionExecutor.execute(事务执行器.java:68) 在android.os.Handler.调度消息(Handler.java:106) 在android.os.Looper.循环(Looper.java:214) 在android.app.ActivityThread.主(ActivityThread.java:7058) 在com.android.internal网站.操作系统运行时初始化$MethodAndArgsCaller.run(java:493) 在com.android.internal网站.合子体.main(合子网.java:965) 原因:java.lang.NullPointerException:尝试调用虚拟方法“void”安卓支持.v7版。widget.RecyclerView.setLayoutManager(安卓支持.v7版。widget.RecyclerView$LayoutManager)'(在空对象引用上) 在com.example.atry网站.MainActivity.onCreate(主活动.java:84) 在安卓应用程序活动.执行创建(活动.java:7327) 在android.app.Instrumentation公司.callActivityOnCreate(仪器.java:1275) 在android.app.ActivityThread.手足活动(ActivityThread.java:3258) 在android.app.servertransaction.TransactionExecutor.executeCallbacks(事务执行器.java:108) 在android.os.Looper.循环(Looper.java:214) 在android.app.ActivityThread.主(ActivityThread.java:7058) 在com.android.internal网站.操作系统运行时初始化$MethodAndArgsCaller.run(java:493) 在com.android.internal网站.合子体.main(合子网.java:965)

    0 回复  |  直到 5 年前
        1
  •  3
  •   Chrisvin Jem    5 年前

    确保 findViewById() 仅在布局已膨胀并使用设置为内容视图后调用 setContentView()

        2
  •  1
  •   Josteve Adekanbi    5 年前

    我找到了解决办法

    我的主要活动文件被复制到 活动_主.xml 活动_主.xml(28版) 所以我的 主活动.java 是在选择 不是想要的布局文件

    活动_主.xml 我把它贴进去了 活动_主.xml(28版)

        3
  •  0
  •   MashukKhan Ijaz    5 年前

    希望这能解决你的问题

    LinearLayoutManager layoutManager = new LinearLayoutManager(context);    
    layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    recyclerView.setLayoutManager(layoutManager);