You had me until System.loadLibrary() -- much as we'd like to support dynamic code loading, iOS app restrictions explicitly forbid it. Even if you figured out a way to do so, any app using your library wouldn't be accepted by the App Store.
But hope is not lost, as there are other ways to do this. If the API isn't too big, the easiest is probably to
add OCNI comments. It's a technique borrowed from GWT that allows developers to embed Objective-C code into Java files such that it is ignored by the Java compiler. For example, here is how System.exit() is implemented:
public native static void exit(int status) /*-[
exit(status);
]-*/;
The exit(status) call is the Posix system function available in most systems. If the above is compiled with a Java compiler, everything between the /* and */ is ignored, creating a normal native declaration.
For larger libraries, a wrapper generator may be worth the effort.
SWIG is a popular choice; although it doesn't have a j2objc-specific generator,
it looks easy to extend especially by cut & pasting from its Java module.