First of all, take away the "v" option. Redirect stderr to /dev/null or a log file. Scripts running in cron have no attached terminal, so trying to read input or print will cause the job to stall.
There isn't an --stdion option for gpg. Also, receiving from stdin you would loose the filename.
If you run gpg manually, does it prompt for a password? If so, this won't work for a cronjob.