Could not find constructor when recreating Activity
See original GitHub issueDescribe the bug We are having some crash reports of some users:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.flavouruat/com.example.MainActivity}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.reactnativestripesdk.PaymentLauncherFragment: could not find Fragment constructor
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3774)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3936)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2341)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8184)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.reactnativestripesdk.PaymentLauncherFragment: could not find Fragment constructor
at androidx.fragment.app.Fragment.instantiate(Fragment.java:630)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
at androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448)
at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:81)
at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85)
at androidx.fragment.app.FragmentManager.restoreSaveStateInternal(FragmentManager.java:2410)
at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2584)
at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:116)
at androidx.fragment.app.FragmentActivity.lambda$init$1$FragmentActivity(FragmentActivity.java:128)
at androidx.fragment.app.-$$Lambda$FragmentActivity$QtiQ2ZI3e38UkO1_xuJ8vE_JZj4.onContextAvailable(Unknown Source:2)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:352)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:249)
at io.flutter.embedding.android.FlutterFragmentActivity.onCreate(FlutterFragmentActivity.java:252)
at android.app.Activity.performCreate(Activity.java:8129)
at android.app.Activity.performCreate(Activity.java:8109)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1344)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3743)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3936)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2341)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8184)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
Caused by: java.lang.NoSuchMethodException: com.reactnativestripesdk.PaymentLauncherFragment.<init> []
at java.lang.Class.getConstructor0(Class.java:2363)
at java.lang.Class.getConstructor(Class.java:1759)
at androidx.fragment.app.Fragment.instantiate(Fragment.java:615)
at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
at androidx.fragment.app.FragmentManager$2.instantiate(FragmentManager.java:448)
at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:81)
at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85)
at androidx.fragment.app.FragmentManager.restoreSaveStateInternal(FragmentManager.java:2410)
at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2584)
at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:116)
at androidx.fragment.app.FragmentActivity.lambda$init$1$FragmentActivity(FragmentActivity.java:128)
at androidx.fragment.app.-$$Lambda$FragmentActivity$QtiQ2ZI3e38UkO1_xuJ8vE_JZj4.onContextAvailable(Unknown Source:2)
at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:352)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:249)
at io.flutter.embedding.android.FlutterFragmentActivity.onCreate(FlutterFragmentActivity.java:252)
at android.app.Activity.performCreate(Activity.java:8129)
at android.app.Activity.performCreate(Activity.java:8109)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1344)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3743)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3936)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2341)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:344)
at android.app.ActivityThread.main(ActivityThread.java:8184)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034)
To Reproduce Recreating an Activity can be tricky, but when you leave the app a long time in idle and come back to it, it usually happens.
Also, when switching the developer options “Don’t keep activities”, going into the app, and then passing it to background and foreground, it can be reproduced this way too.
Expected behavior Fragments should have a default constructor and a way to recreate.
Smartphone (please complete the following information):
- Device: happening in every device tested
- OS: Any Android, tested (11, 12…)
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:11
Top Results From Across the Web
android - Could not find Fragment constructor - Stack Overflow
All Fragment classes you create must have a public, no-arg constructor. In general, the best practice is to simply never define any ...
Read more >Fragment and constructor dependencies - ProAndroidDev
This happens when Android's FragmentManager is unable to instantiate the current fragment as it couldn't find an empty fragment constructor.
Read more >Android – Could not find Fragment constructor - iTecNote
ProductsFragment: could not find Fragment constructor. The error is coming at the line which is in activity super.onCreate(savedInstanceState);
Read more >Android : Could not find Fragment constructor - YouTube
Android : Could not find Fragment constructor [ Beautify Your Computer : https://www.hows.tech/p/recommended.html ] Android : Could not find ...
Read more >Fragment | Android Developers
A Fragment is closely tied to the Activity it is in, and can not be used apart from one ... and needs to...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Ah of course (completely missed that from my phone) Amazing, thanks for your help!
There’s just one step in the guide I linked 😃