Cannot add the same observer with different lifecycles, one activity multiple fragment architecture

Viewed 88

I'm using one activity multiple fragments architecture with bottom navigation. On pressing the same button in bottomNav i encounter with this error.

My viewModel code in fragement:

DashboardViewModel dashboardViewModel = new ViewModelProvider(requireActivity()).get(DashboardViewModel.class);

dashboardViewModel.getLatLong().observe(getViewLifecycleOwner(),item ->{
    Log.i("uni","location expense "+item);
});

and the error in logcat as follows :

2022-01-14 14:13:35.388 5033-5824/smartsense.co.in.sensephone E/OneSignal: Error updating the user record because of the null user id
2022-01-14 14:15:21.045 5033-5033/smartsense.co.in.sensephone E/AndroidRuntime: FATAL EXCEPTION: main
    Process: smartsense.co.in.sensephone, PID: 5033
    java.lang.IllegalArgumentException: Cannot add the same observer with different lifecycles
        at androidx.lifecycle.LiveData.observe(LiveData.java:199)
        at smartsense.co.in.sensephone.ui3.ExpenseFragment.onCreateView(ExpenseFragment.java:126)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7664)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
0 Answers
Related