Estoy a punto de comenzar a golpear mi cabeza contra la pared aquí. He leído todos los hilos SO que puedo encontrar sobre este tema, leo todos los resultados de Google sobre el tema y no puedo encontrar la posición en cuclillas. Estoy construyendo una aplicación de Android donde escribí un motor 2D en C++ y estoy usando la versión compartida de stlport con NDK r6b. El archivo .so para libstlport_shared se genera y se copia correctamente en mi carpeta libs. Incluso comprobé usando adb shell en el dispositivo y el archivo .so se copió correctamente.Error al vincular libstlport_shared, aunque esté presente ...?
Intenté varias soluciones, como la modificación de mi archivo .mk para declarar explícitamente libstlport_shared.so como un módulo obligatorio. Durante el tiempo de compilación, todo va bien, aparece en la APK y se copia con éxito en el dispositivo. Sin embargo, me sale este error:
09-17 17:35:26.450: DEBUG/dalvikvm(19277): Trying to load lib /data/data/ca.ascensionsystems.mypackagename/lib/libstlport_shared.so 0x476c6f30
09-17 17:35:26.450: INFO/dalvikvm(19277): Unable to dlopen(/data/data/ca.ascensionsystems.mypackagename/lib/libstlport_shared.so): Cannot load library: link_image[1995]: failed to link libstlport_shared.so
09-17 17:35:26.450: WARN/dalvikvm(19277): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lca/ascensionsystems/mypackagename/Ascengine;.<clinit>
09-17 17:35:26.450: WARN/dalvikvm(19277): threadid=8: thread exiting with uncaught exception (group=0x40025a70)
09-17 17:35:26.470: VERBOSE/WindowManager(4837): Remove Window{479ca678 Starting ca.ascensionsystems.mypackagename paused=false}: mSurface=Surface(name=Starting ca.ascensionsystems.mypackagename, identity=90) mExiting=false isAnimating=true [email protected] inPendingTransaction=false mDisplayFrozen=false
09-17 17:35:26.470: ERROR/WindowManager(4837): return in removeWindowLocked
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): FATAL EXCEPTION: GLThread 9
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): java.lang.ExceptionInInitializerError
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): at ca.ascensionsystems.mypackagename.GL2JNIView$Renderer.onSurfaceChanged(GL2JNIView.java:336)
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1327)
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118)
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): Caused by: java.lang.UnsatisfiedLinkError: Library stlport_shared not found
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): at java.lang.Runtime.loadLibrary(Runtime.java:461)
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): at java.lang.System.loadLibrary(System.java:557)
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): at ca.ascensionsystems.mypackagename.Ascengine.<clinit>(Ascengine.java:26)
09-17 17:35:26.490: ERROR/AndroidRuntime(19277): ... 3 more
09-17 17:35:26.500: WARN/ActivityManager(4837): Force finishing activity ca.ascensionsystems.mypackagename/.mypackagenameActivity
Tenga en cuenta que he sustituido mi nombre verdadero paquete con "nombre_paquete" para no revelar el nombre de increíble súper secreto de mi próximo juego. :) También tenga en cuenta que Ascengine es otro .SO, mi aplicación principal SO, que es mi motor 2D.
¿Alguien tiene un problema como este? ¿Algunas ideas? También tenga en cuenta que hice un objdump en libstlport_shared para verificar sus deps. Confirmé que existen en mi dispositivo con DDMS e incluso los cargué explícitamente en mi código java antes de intentar cargar libstlport_shared. No hizo ninguna diferencia. ¡Gracias por adelantado!
TAMBIÉN
esto es una especie de un segundo componente, opcional a la pregunta. Una solución que he pensado pero que aún no he probado es usar System.load (absolutePathToLibrary) pero no puedo encontrar cómo generar esta ruta dentro de Java. No quiero codificarlo, por razones obvias. ¡Gracias de nuevo!
Tengo un problema similar, ¿me pueden ayudar? http://stackoverflow.com/questions/11483078/library-stlport-shared-not-found-in-titanium-application – Mari