While it has gotten a lot better to use JNI methods with Android, I still avoid them whenever possible. Especially, when I wish to support iOS, also; and Windows/Mac tablets...all with identical code, only minor tweaks for install.
I've found the Qt camera (Widgets or QML) to work well - even realtime viewing, just re-using big chunks of the example code. The zoom/white balance/focus controls automatically show, or not, as the actual device is able to support them.
The secret that made it all work much easier for me, was to avoid the un-necessary extra signal/slot stuff for a simple picture....
mycamerainstance.captureToLocation(myValidLocalFilename);
I'd suggest trying skipping the platform camera, and trying the Qt Camera again, using the simpler captureToLocation call. I've found this way simplest.
Good luck!