First, this is the kind of error that I was seeing...
dmesg output
[ 2923.832511] Out of memory: Kill process 2291 (java) score 611 or sacrifice child
[ 2923.839974] Killed process 2291 (java) total-vm:266796kB, anon-rss:131832kB, file-rss:4764kB
This was verified by running 'free'...
free -h
total used free shared buffers cached
Mem: 212M 153M 58M 0B 10M 81M
-/+ buffers/cache: 62M 150M
Swap: 0B 0B 0B
No swap space! No big deal, just install dphys-swapfile as the root user.
Command ran as root
apt-get install dphys-swapfile
During installation a 512Mb swap file is configured for you, but if you want to change that it can be done by editing the /etc/dphys-swapfile configuration file. The default is like this...
/etc/dphys-swapfile
CONF_SWAPSIZE=512
Now just run the setup and turn on the swap space...
Commands ran as root
dphys-swapfile setup
dphys-swapfile swapon
Running 'free' again confirms that the swap space has been added...
free -h
total used free shared buffers cached
Mem: 212M 188M 24M 0B 12M 112M
-/+ buffers/cache: 63M 149M
Swap: 511M 0B 511M
These settings stay after a restart, so there is nothing else to do once you've set it up. After these changes I have not had a single crash.
I'd not recommend enabling swap on a Raspberry Pi unless you really need it and don't care about performance. In my case, it doesn't matter if it runs slower since it's just a photo frame, but the same won't apply in all use cases.
-i