I do not think your problem is the sdk version.
targetSDKVersion of 21 already means you are using 5.0 behaviour, on devices with this version installed
minSDKVersion of 16 means it will also run on anything from 4.1.
Even though things change slightly between versions, the changes are not that big, it is mainly that new APIs are added, so it is unlikely your application needs lots of change to work.
But first of all, you need to find out what is actually going wrong.
The best way to do this is to run the application from within eclipse in debug mode. Then you can set breakpoints and step through your program line by line, and make sure variables have the values they are supposed to have, and that all objects you try to create is created properly.
If there is a crash, it will likely stop and show you where in your program go wrong, and what exceptions.
Then you have to figure out why from there.
The E/SMD error message you see most likely has nothing to do with your application. Unfortunately logcat is very polluted by system services puking uninteresting information. (On one device I used, just starting a sound generated more then 30000 lines of debug output. yes, thirty thousands. unbelievable...)
Eclipse is supposed to show filtered logcat messages, but this does not always work. If not, you can filter it out yourself from running the command line tool "logcat"
Personally I use grep on OSX to filter.. (logcat | grep <process id>)
That number in parenthesis on the line is the process id of the application that generate the message.
Check what process id your application has when it starts up, and then use that to see what messages your application is showing.