SOLVED! The precision qualifier isn't usually a requirement from my experience. I wasn't using it... and because my uniform was an integer.
I read a confirmation that uniforms can be same-named between vertex and fragment shaders here:
http://www.gamedev.net/topic/535321-glsl-the-same-named-uniform-in-vertex-and-fragment-shaders/
So I believed it was my own mistake.
Finally, I tried adding the highp precision qualifer, and that has SOLVED the issue of crashing.
Technically:
Setup 1 (crash)
Vertex shader:
uniform int frameNum;
Fragment shader:
uniform int frameNum;
Setup 2 (crash)
Vertex shader:
uniform highp int frameNum;
Fragment shader:
uniform int frameNum;
Setup 3 (SUCCESS)
Vertex shader:
uniform highp int frameNum;
Fragment shader:
uniform highp int frameNum;
Setup 4 (SUCCESS)
Vertex shader:
uniform int frameNum;
Fragment shader:
uniform highp int frameNum;