¿Hay alguna forma de cargar las bibliotecas de time de ejecución además de ponerlas en src / main / jniLibs?

Estoy intentando escribir un triángulo hola para OpenGL es 2 en Android.

La única solución de trabajo que encontré es que tiene bibliotecas jogl nativas en app/src/main/jniLibs/ , de esta manera :

 app/ |--> src/ |--> main/ |--> jniLibs/ |--> lib*.so 

En mi proyecto hello desktop correspondiente, simplemente tengo en mi build.gradle

 def joglVersion = '2.3.2' compile "org.jogamp.gluegen:gluegen-rt-main:$joglVersion" compile "org.jogamp.jogl:jogl-all-main:$joglVersion" 

y funciona sin fallas, en time de ejecución, las bibliotecas se extraen y proporcionan.

Una alternativa a esta solución es extraerlos manualmente y ponerlos en project/natives . Ambos trabajan.

En Android, nunca build.gradle como en el escritorio, un simple build.gradle . La única forma es, como dije al principio, extraerlos manualmente de los flasks donde estaban y ponerlos bajo jniLibs/

No importa dónde coloque el directory plaind natives/android-armv6 (no comprimir, .jar o .apk ), siempre falla:

 E/AndroidRuntime: FATAL EXCEPTION: main Process: org.helloTriangle_es2, PID: 9735 java.lang.UnsatisfiedLinkError: dlopen failed: library "//natives/android-armv6//libgluegen-rt.so" not found at java.lang.Runtime.load(Runtime.java:332) at java.lang.System.load(System.java:1069) at com.jogamp.common.jvm.JNILibLoaderBase.loadLibraryInternal(JNILibLoaderBase.java:624) at com.jogamp.common.jvm.JNILibLoaderBase.access$000(JNILibLoaderBase.java:63) at com.jogamp.common.jvm.JNILibLoaderBase$DefaultAction.loadLibrary(JNILibLoaderBase.java:106) at com.jogamp.common.jvm.JNILibLoaderBase.loadLibrary(JNILibLoaderBase.java:487) at com.jogamp.common.os.DynamicLibraryBundle$GlueJNILibLoader.loadLibrary(DynamicLibraryBundle.java:421) at com.jogamp.common.os.Platform$1.run(Platform.java:317) at java.security.AccessController.doPrivileged(AccessController.java:45) at com.jogamp.common.os.Platform.<clinit>(Platform.java:287) at com.jogamp.common.os.Platform.initSingleton(Platform.java:355) at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:147) at org.helloTriangle_es2.MainActivity.onCreate(MainActivity.java:23) at android.app.Activity.performCreate(Activity.java:6322) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1488) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:207) at android.app.ActivityThread.main(ActivityThread.java:5728) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) I/Process: Sending signal. PID: 9735 SIG: 9 Application terminated. 

Al mirar a mi alnetworkingedor, leo esta respuesta , donde dicen que básicamente los apk files son el tipo de time de ejecución.

Intenté eso, agregando por:

 provided files('libs/gluegen-rt-natives-android-armv6.jar') provided files('libs/jogl-all-natives-android-armv6.jar') 

pero de ninguna manera. También intentar compile / provided lugar de provided no hizo diferencia … siempre la misma exception

¿Estoy haciendo algo mal o los src/main/jniLibs/armeabi manualmente en src/main/jniLibs/armeabi es realmente la única solución?