Shuts down because it exceeded the memory limit, enforced by operating system

Exceeds memory usage limit
    
      This limit can vary depending on the type of devices your app targets.

Suspect a memory leak

Basic memory concepts

Dart objects created using a class constructor
(for example, by using MyClass()) live in a
portion of memory called the heap. The memory
in the heap is managed by the Dart VM (virtual machine).
The Dart VM allocates memory for the object at the moment of the object creation,
and releases (or deallocates) the memory when the object
is no longer used (see Dart garbage collection).

Root object, retaining path, and reachability

Root object

Every Dart application creates a root object that references,
directly or indirectly, all other objects the application allocates.

Reachability