Open btraas opened 4 years ago
Facing same error suddenly.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.fragment.app.FragmentManagerImpl.isDestroyed()' on a null object reference at androidx.fragment.app.Fragment.performDetach(Fragment.java:2849) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1034) at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238) at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659) at androidx.fragment.app.FragmentManagerImpl.dispatchDestroy(FragmentManagerImpl.java:2644) at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:329) at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:366) at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:210) at android.app.Activity.performDestroy(Activity.java:7218) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1249) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4370) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4401) at android.app.ActivityThread.-wrap5(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1649) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Facing same error after updating to androidx.appcompat:appcompat:1.1.0. If I leave androidx.appcompat:appcompat:1.0.2 it works.
The problem seems to be what @btraas said.
Guys, here is the solution for the issue being face. CaldroidX
You can get solution from here https://github.com/vpotvin/CaldroidX
No need to implement new SDK. Just remove onDetach() method from CaldroidFragment.java, if you have already moved code to androidx. That's it.
Check stackoverflow answer:- https://stackoverflow.com/a/56925799/2598244
Hello,
I'm getting a crash on API 29 when the androidx fragment is destroyed by android.
This SO question suggests removing the deallocation via reflection in CaldroidFragment.onDetach:
https://stackoverflow.com/questions/56925777/boolean-androidx-fragment-app-fragmentmanagerimpl-isdestroyed-on-a-null-obje
Removing the onDetach() method fixes the crash for me. Should maybe check if API < 29 before deallocating via reflection?