Domanda

Sto sviluppando un gioco Android che utilizza il motore LiBGDX e Bullet Physics. Posso compilare il gioco senza problemi, ma quando aggiungo proiettile al gioco si blocca con questo errore:

.... insoddisfatti diplinkerror: Impossibile caricare il proiettile: findlibrary restituito null ...

Posso compilare bene la libreria di proiettili, ma quando provo a usarla nel mio codice si blocca .. La cosa divertente è che ho un altro progetto che usa il proiettile ma senza libgdx e funziona senza problemi. Qualcuno sa quale potrebbe essere il problema? Da quello che so che NDK-Build genera solo file e cartelle OBJ.

Sembra che il file proiettile .SO non sia incluso in .apk, quindi l'incidente. Come potrei verificare se lo è? Qualcuno ha avuto problemi simili?

Grazie per l'aiuto!

È stato utile?

Soluzione

Ho risolto il mio problema. Il problema era che LiBGDX ha cartelle armeabi e armeabi-v7a nella cartella LIBS e il proiettile ha solo armeabi. Quindi ho rimosso l'Armeabi-V7A e ha funzionato magico!

Altri suggerimenti

Controlla quel nome che viene passato a System.loadLibrary è lo stesso del nome .so nel file .Apk. Il file APK in realtà è un file zip, quindi è possibile rinominarlo in estensione .zip, decomprimere ed esaminare la cartella LIBS all'interno.

Quindi, se hai un file denominato libfoobar.so nella cartella libs nel file APK, è necessario passare uno dei seguenti nomi a Loadlibary - "Foobar", "libfoobar" o "libfoobar.so".

Ho fatto apparire questo problema quando ho iniziato a utilizzare i file nativi .cpp anziché i file nativi .c. Il problema era che non mi consideravo name-mangling Negli strumenti di costruzione .cpp. Prova ad aggiungere quanto segue che circonda le definizioni del metodo nativo:

#ifdef __cplusplus 
extern "C" {
#endif
    /* ... */
#ifdef __cplusplus
}
#endif

Sto avendo un problema simile

Il post di cui sopra è stato utile, però, ho controllato il mio gioco. APK e la biblioteca SO è sotto lib/armeabi, ma quando lo costruisco in eclissi è in libs/armeabi.

Penso che dovrebbe essere sotto i libri normalmente e se qualcuno può aiutarmi a cambiare lib in libs quando la costruzione sarà davvero utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top