J'ai placé une bibliothèque .so dans le dossier/libs/armeabi/(j'ai également essayé juste dans le dossier/libs) de mon application et j'ai essayé de charger avec une méthode statique. Je reçois une erreur UnsatisfiedLinkError/null.Pourquoi ma bibliothèque native ne se charge-t-elle pas dans mon application Android?
J'ai essayé le chemin complet dans la méthode statique mais j'ai toujours l'erreur.
static {
System.loadLibrary("/data/data/com.imtroymiller.myapp/lib/armeabi/libmylib.so");
}
C'est tout le message d'erreur que je reçois.
08-04 12:49:22.204: E/AndroidRuntime(3352): java.lang.UnsatisfiedLinkError: Couldn't load /data/data/com.imtroymiller.myapp/lib/armeabi/libmylib.so from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.imtroymiller.myapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.imtroymiller.myapp-1, /vendor/lib, /system/lib]]]: findLibrary returned null
J'ai lu dans le tutoriel ci-dessous et je comprends comment utilisé pour NDK pour créer une bibliothèque à partir du code source, mais je suis en train de charger une bibliothèque existante dans mon application afin que je puisse exécuter un exécutable dépend de la bibliothèque.
http://code.tutsplus.com/tutorials/ndk-tutorial--mobile-2152
J'ai essayé cela sur deux appareils, les deux ont un accès root. L'un est CyanogenMod 11 et l'autre est CyanogenMod 12.
Edit: j'ai pu les charger en utilisant ...
System.load("/data/data/com.imtroymiller.myapp/lib/libmylib.so");
Il ressemble System.load prend le nom de chemin et prend la System.loadLibrary nom de la bibliothèque. Mais les deux avec charge la bibliothèque.
Mais je reçois le même message d'erreur de toute façon. – ImTroyMiller