Sono quasi pronto per iniziare a sbattere la testa dal muro qui. Ho letto ogni thread SO che posso trovare su questo problema, leggere ogni singolo risultato di Google sul problema e non riesco a trovare lo squat. Sto costruendo un'app per Android in cui ho scritto un motore 2D in C++ e sto utilizzando la versione condivisa di stlport con NDK r6b. Il file .so per libstlport_shared viene generato e copiato con successo nella mia cartella libs. Ho anche controllato l'utilizzo della shell adb sul dispositivo e il file .so è stato copiato correttamente.Impossibile collegare libstlport_shared, anche se è presente ...?
Ho provato varie soluzioni, come la modifica del mio file .mk per dichiarare esplicitamente libstlport_shared.so come un modulo richiesto. Durante la compilazione tutto va alla grande, si presenta nell'APK, con successo copia sul dispositivo. Eppure, ottengo questo errore:
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
Si noti che ho sostituito il mio vero nome del pacchetto con "nomedelmiopacchetto" per non dare via il nome impressionante super-segreto del mio prossimo gioco. :) Nota anche Ascengine è un'altra .SO, la mia applicazione principale SO, che è il mio motore 2D.
Qualcuno ha riscontrato un problema come questo? Qualche idea? Nota anche che ho eseguito un objdump su libstlport_shared per controllarne i deps. Ho confermato che esistono sul mio dispositivo con DDMS e anche caricati esplicitamente nel mio codice java prima di provare a caricare libstlport_shared. Non ha fatto differenza Grazie in anticipo!
ANCHE
questo è una specie di un secondo componente, opzionale per la questione. Una soluzione a cui ho pensato ma che non ho ancora provato è quella di utilizzare System.load (absolutePathToLibrary) ma non riesco a trovare come generare questo percorso all'interno di java. Non voglio programmarlo a fondo, per ovvi motivi. Grazie ancora!
Ho un problema simile, puoi aiutarmi? http://stackoverflow.com/questions/11483078/library-stlport-shared-not-found-in-titanium-application – Mari