How to load libUE4.so from local folder on Android?

In GameActivity.java.template, UE load libUE4.so like this:

System.loadLibrary("UE4");

But I want to load libUE4.so from Android app files dir, instead of loading from native library dir:

System.loadLibrary(path_to_local_libue4);

However, when I modified the GameActivity.java.template, and change System.loadLibrary(“UE4”) to System.load(path_to_local_libue4),the game will crash on start with “java.lang.UnsatisfiedLinkError: undefined symbol: __swrite”

06-10 16:01:47.843 13709 13709 E AndroidRuntime: java.lang.UnsatisfiedLinkError: undefined symbol: __swrite

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at java.lang.Runtime.loadLibrary(Runtime.java:373)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at java.lang.System.loadLibrary(System.java:1076)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at com.epicgames.ue4.GameActivity.onCreate(GameActivity.java:2349)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:6279)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2499)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2606)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.ActivityThread.-wrap11(ActivityThread.java)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1444)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:102)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:148)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:5654)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:759)

06-10 16:01:47.843 13709 13709 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649)

I know that maybe it can not find other .so files that depends on by this way. So I tried to load other .so files before libUE4.so.

It works, but game will also crash after load. The app loads the libUE4.so from local file successfully but it will load libUE4.so again from native library path. So it will crash finally.

Anybody knows why? Please help me.

I wonder if UE did something in AndroidJNI Onload that causing this problem?