2010-04-08 5 views
0

J'ai commencé à me enseigner le NDK Android et j'ai suivi cet exemple ici - http://marakana.com/forums/android/android_examples/49.htmlAndroid NDK JNI problème

J'ai suivi les étapes parfaitement, mais quand je lance l'application, je reçois l'erreur suivante:

Trying to load lib /data/data/com.cnetworks.ndk/lib/libndk_demo.so 0x435c2d20 
Added shared lib /data/data/com.cnetworks.ndk/lib/libndk_demo.so 0x435c2d20 
No JNI_OnLoad found in /data/data/com.cnetworks.ndk/lib/libndk_demo.so 0x435c2d20 
+++ not scanning '/system/lib/libwebcore.so' for 'hello' (wrong CL) 
+++ not scanning '/system/lib/libmedia_jni.so' for 'hello' (wrong CL) 
WARN/dalvikvm(5191): No implementation found for native Lcom/cnetworks/ndk/NativeLib;.hello()Ljava/lang/String; 

Voici le code java, nativeLib.hello() est à l'origine du problème. Est-ce que quelqu'un a eu le même problème avant et capable de me dire ce qui ne va pas?

+2

Pouvez-vous également inclure la ligne de déclaration de la fonction native? La machine virtuelle ne trouve pas la méthode native, ce qui arrive souvent si vous avez une faute de frappe dans le nom ou négligé de la déclarer avec 'extern' C "'. La fonction réside-t-elle dans la bibliothèque libndk_demo.so? – fadden

+0

Merci, fadden Je l'ai corrigé –

+0

Bonjour Donal, pouvez-vous me dire comment avez-vous résolu l'erreur ci-dessus? –

Répondre

1

bien d'après mon expérience, il y a un problème aveC#define #define attribut (x) défini dans certains fichiers. Il suffit de ne pas commenter la même chose, puis ndk compilée lib sera chargé.

+0

son #define __attribute __ (x) – mayank