Android - 'impossible de charger le Foo: findLibrary retourné null'

Je sais qu'il existe déjà des posts à propos de cette erreur autour de débordement de pile, mais de ce que j'ai trouvé ici sur soi et sur Google ne sont pas alignées avec mon problème.

Je suis en train de lancer mon application, mais à chaque fois qu'une fonction native est appelé mon programme se bloque, et j'ai le LogCat...

08-01 09:15:57.448: E/AndroidRuntime(16966): FATAL EXCEPTION: main
08-01 09:15:57.448: E/AndroidRuntime(16966): java.lang.ExceptionInInitializerError
08-01 09:15:57.448: E/AndroidRuntime(16966):    at my.eti.commander.MainMenu.initMain(MainMenu.java:241)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at my.eti.commander.MainMenu.onCreate(MainMenu.java:81)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.os.Looper.loop(Looper.java:130)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at android.app.ActivityThread.main(ActivityThread.java:3683)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at java.lang.reflect.Method.invokeNative(Native Method)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at java.lang.reflect.Method.invoke(Method.java:507)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at dalvik.system.NativeStart.main(Native Method)
08-01 09:15:57.448: E/AndroidRuntime(16966): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load RelayAPI: findLibrary returned null
08-01 09:15:57.448: E/AndroidRuntime(16966):    at java.lang.Runtime.loadLibrary(Runtime.java:429)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at java.lang.System.loadLibrary(System.java:554)
08-01 09:15:57.448: E/AndroidRuntime(16966):    at my.eti.commander.RelayAPIModel$NativeCalls.<clinit>(RelayAPIModel.java:432)
08-01 09:15:57.448: E/AndroidRuntime(16966):    ... 15 more

Voici mon Android.mk fichier:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
EXTRA_CFLAGS := -DANDROID
LOCAL_MODULE := RelayAPI
LOCAL_SRC_FILES := RelayAPI.c
include $(BUILD_EXECUTABLE)

Voici une photo de mon jni dossier...Seulement RelayAPI sera utilisé, stringstuff est un fichier supplémentaire qui n'est pas utilisée.

Android - 'impossible de charger le Foo: findLibrary retourné null'

Je stocke tous mes fonctions natives dans une catégorie distincte de sorte qu'ils puissent être appelée de façon statique. Ce n'est pas le problème, parce que j'ai été de les déplacer un peu, mais j'ai décidé que ce serait la meilleure façon pour moi de le faire.

public static class NativeCalls {
static {
System.loadLibrary( "RelayAPI");
}
public native static byte InitRelayJava();
public native static void FreeRelayJava();
}
je pense que l'erreur vient becoz de libs,,,,Ajouter correctement les fichiers jar
que signifie...?
Construire une bibliothèque partagée. Je pense que c'est peut-être parce que vous êtes la construction comme un exécutable. Je ne pense pas que le Système.loadLibrary pouvez charger des fichiers exécutables
Où avez-vous copié votre jar/ ou d'autres fichiers de la Bibliothèque dans votre projet??
Je n'ai vraiment aucune idée de ce que les fichiers que vous êtes en train de parler, désolé. Quel est le but des fichiers? Je ne l'ai modifier mon .c/.h/.mk fichiers dans la jni dossier et les fichiers Java dans mon répertoire /src

OriginalL'auteur JuiCe | 2012-08-01