EDIT ::: The code in the question works, but it takes around 10 seconds for getting back to the activity once the image is taken in camera. I gave up this approach and used Face
You are trying to do too much at once, and are getting lost in all the details.
Start by simplifying your code to the bare minimum needed for encryption and decryption:
byte[] key = { 1, 2, 3, ... 14, 15, 16 };
byte[] IV = { 5, 5, 5, ... 5, 5, 5 };
String plaintext = "This is a secret message."
Now cut down your code to encrypt and decrypt that plaintext message back to a readable text string.
When you have that small program working correctly, add back the other complications one at a time. At each stage, check again that your code can encrypt and decrypt successfully. I suggest that you start by adding back the SecretKeyFactory part, and finish with the file reading and writing part.
By splitting your program up into smaller parts it will be easier for you to understand what each part of your program is doing, and make it easier for you to identify where you are making mistakes.