代码之家  ›  专栏  ›  技术社区  ›  Tommy -

为什么回收器视图在片段中有NullPointerException?

  •  0
  • Tommy -  · 技术社区  · 2 年前

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        databaseReference = FirebaseDatabase.getInstance().getReference("profilUsaha")
        auth = FirebaseAuth.getInstance()
        uid = auth.currentUser?.uid.toString()
    
        daftar_pesan_recycler_view.adapter = adapter
        listenForLatestMessages()
    
        arguments?.let {
            param1 = it.getString(ARG_PARAM1)
            param2 = it.getString(ARG_PARAM2)
        }
    }
    

    但不知何故,出现了以下错误:

    2022-07-20 00:29:23.872 17032-17032/com.example.gesit E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.gesit, PID: 17032
    java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference
        at com.example.gesit.PesanFragment.onCreate(PesanFragment.kt:51)
        at androidx.fragment.app.Fragment.performCreate(Fragment.java:2981)
        at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:474)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:257)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1840)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1758)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1701)
        at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:488)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.app.ActivityThread.main(ActivityThread.java:8669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
    

    如何解决此问题?谢谢

    1 回复  |  直到 2 年前
        1
  •  0
  •   laalto    2 年前

    onCreate()

    您可以将视图设置代码移动,例如将recyclerview adapter设置为 onViewCreated()

        2
  •  0
  •   Akshat Bhuhagal    2 年前

    可能情况并非如此,但。。。一般来说,所有需要活动实例的初始化都必须在 onActivityCreated() (或片段生命周期中的下一个方法)。在…内 onCreateView() getActivity() 不保证返回非null值。在某些情况下,它返回null。