2011-03-13 9 views
0

J'ai un fichier objet partagé que j'appelle depuis mon application android. Jusqu'à présent, je l'avais dans mon projet java, et je l'ai chargé comme ça:Problème lié à l'objet partagé

static { System.loadLibrary("mysofile") }; 

Maintenant, je suis en train de charger depuis un autre endroit:

static {System.loadLibrary("/mnt/sdcard/mysofile.so"} 

Mais j'obtiens l'erreur suivante:

03-13 14:26:12.183: ERROR/AndroidRuntime(2339): java.lang.UnsatisfiedLinkError: Cannot load library: load_segments[928]: 92 failed to map segment from 'mysofile.so' @ 0x83400000 (0x00001488). p_vaddr=0x00000000 p_offset=0x00000000 

Quelqu'un pourrait-il m'aider à résoudre le problème?

Merci, Binyamin

Répondre

1

Ce que vous voulez le plus probable est pas pris en charge. S'il vous plaît utiliser le NDK et suivez ses instructions pour soutenir correctement JNI sur Android.

De plus, ne codez jamais en dur /mnt/sdcard, car cela est faux sur la plupart des appareils Android. Utilisez Environment.getExternalStorageDirectory() pour identifier la racine du stockage externe.

+0

Merci. J'ai utilisé le NDK pour une utilisation de base, mais j'essaie de télécharger et de remplacer des bibliothèques à la volée (à des fins de test), j'ai donc essayé d'utiliser la bibliothèque depuis l'extérieur de mon dossier d'application. En ce qui concerne les chemins codés en dur - je suis absolument d'accord, cela fait juste partie d'un code de test. – MByD