In fact, using Inline Java and some tricks, it is technically possible to interface
in some cases B4A+Inline java to simple .so files. But I do not recommend it unless you have a strong reason for it, and surely to get it working will give you far more headaches than compiling a jar.
I see 2 different use cases when talking about Inline Java + .so files:
a) B4A+Inline Java + C --> Compile the C file with the NDK (some settings required) and then you have B4A+InlineJava + .so file. I tried it and it worked for me
b) B4A+Inline Java + existing .so file .--> Point (1) below will limit you. Also, you must have deep understanding of what functions do.
Here some background of what I have seen so far (maybe inaccurate)
1) As the .so file has been compiled with the JNI interface to be used from a specific java package name and class, the B4A package name and class where you instantiate it, should match these names.
2) The .so files must be placed in the Files folder of yor B4A project before compiling. But as libraries cannot be directly instantiated from File.DirAssets, they will have to be copied to File.DirInternal and then loaded with System.Load()
3) Also, if there are different .so file versions for different architectures (armeabi, armeabi-v7, ...) you will have to determine by code which is the appropiate for your device. If you only have one file, I suppose it will be for all ARM devices. The reason for this is that System.LoadLibrary() decides for you which is the right version for your device architecture. As this function did not work for me (I think it only looks for the files at predefined paths and don't know if they can be changed), I used System.Load() but it loads a specific file, so you must know which is the one you need.
If you are still interested, I will post tomorrow (too late for me now) a small example of case (a) and try to see if (b) can work in this case taking into account (1)