question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Could not find constructor when recreating Activity

See original GitHub issue

Describe 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:closed
  • Created a year ago
  • Reactions:1
  • Comments:11

github_iconTop GitHub Comments

1reaction
droplessjakecommented, May 18, 2022

Ah of course (completely missed that from my phone) Amazing, thanks for your help!

1reaction
charliecruzan-stripecommented, May 18, 2022

There’s just one step in the guide I linked 😃

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found