ODK Collect has crashed
Have you received this error while using ODK? SurveyCTO is here to help!
What does this error mean?
The ODK-based Collect app you are using may occasionally crash as you are filling out a submission. It will give you an error message like “[Name of your Collect app] has crashed.” This means that the app has encountered an issue that prevents it from functioning.
If your app crashed while you were filling out your form, the most common cause is that some part of the form caused the app to use up all the RAM available to it on your device. If the app crashes while you are trying to click “Edit Saved Forms” or “Send Finalized Forms” on the main screen, then the list of submissions is longer than the app can load before it runs out of RAM on your device.
How do I fix this error?
- Open your XLSForm definition in Excel and check to see if there are any parts of the form design that could be using up a lot of RAM. Update your form design in the following ways to improve its performance:
Do you have any calculate, constraint, or relevance expressions that are very long (that is, use a lot of functions/terms within the expression)? If so, break up the expressions to make them shorter. For example, you can divide up long calculations into multiple shorter calculate expressions and then combine the results in a final calculate field to get the same overall result.
Do you have any choice lists that are very long? Instead of hard-coding them into the ‘choices’ tab of your form, pre-load them from an external file instead. For more information on how to do this, check out this tutorial.
Is your form very long with lots of fields and calculations? If so, are any fields and calculations such that they could actually be restructured into a repeat group with a variable repeat count? For example, maybe you have a number of questions you want to ask about each household member and you have programmed these questions 10 times, for up to 10 potential members. You could just program these questions once inside a repeat group that is then set to repeat however many times is necessary for each case. This can make the form much shorter and faster, and create less load on your device’s RAM. This tutorial offers more detailed guidance. (You can sign up for a free SurveyCTO trial to access it.)
- If your device has been used to collect lots of submissions offline, and you have not yet had an opportunity to upload any of them to your server, and the app crashes when you click to go to “Edit Saved Forms” or “Send Finalized Forms,” it could be that the lists have gotten too long for the app to open.
The only solution here – without deleting submissions – is to copy the entire directory on the device that contains your submissions onto another device that has better specifications (more RAM and a faster processor) and see if you can click the “Send Finalized Forms” or “Edit Saved Forms” lists in a Collect app installed on this device. Finalize and upload submissions from this device.
We hope you found this helpful. Feel free to browse through our other ODK error guides. To try SurveyCTO for yourself, and see all the improvements we made to ODK, you can sign up for a free 15-day trial. We offer 24×7 support from research experts, customizable form designs, smart data quality controls, and best-in-class data security.