j'essai de faire un projet android en utilisant NDK pour appeler mes fonction C, le probleme ce qui m'insulte en me disant "Please define the NDK_PROJECT_PATH variable to point to it"
j'essai de faire un projet android en utilisant NDK pour appeler mes fonction C, le probleme ce qui m'insulte en me disant "Please define the NDK_PROJECT_PATH variable to point to it"
Salut,
As tu respecté, les demandes de NDK ? c'est à dire :
Les fichiers .C et le Android.mk dans un répertoire <projet_android>/jni
créer un répertoire <projet_android>/libs
Ensuite avec Cygwin ou ton terminal Linux, se placer répertoire du projet Android
cd C:/<projet_android>
Puis lancer le ndk-build en donnant son chemin d'accès.
C:/android-ndk-r5b/ndk_build
Voila si tu fais tout ça et que ton Android.mk est bien écrit tout devrait fonctionner (attention à la majuscule du Android.mk)
Si ça ne marche toujours pas donne plus de détail, merci
j'ai fait tout ça en plus,
voila mon Android.mk contient
mon fichier.C contient ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := opcv LOCAL_SRC_FILES := getdata.c include $(BUILD_SHARED_LIBRARY)
mon fichier.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include "getdata.h" JNIEXPORT int JNICALL JAVA_android_video8_lib_getdata(JNIEnv* env, jobject obj, jint s) { int som; som=s; return (som); }
contient ceci
et ma classe java contient ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include <jni.h> #include <stdio.h> #include <stdlib.h> /* Header for class com_ndkdm_NativeLib */ #ifndef _Included_android_video8_lib #define _Included_android_video8_lib #ifdef __cplusplus extern "C" { #include "opencv/cv.h" #include "opencv/highgui.h" #include "opencv/cxcore.h" #include "opencv/cvaux.h" #endif JNIEXPORT int JNICALL JAVA_android_video8_lib_som(JNIEnv* env, jobject obj, jint s); #ifdef __cplusplus } #endif #endif
ça na pas de raison que ce ne marche pas eje comprend rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 package android.video8; public class libo { static { System.loadLibrary("opcv"); } public native int som(int s); }
Désolé pour l'attente, je crois qu'il y a deux erreur a ton code dans ton fichier jni, ta fonction devrai s'appeler avec libo comme le nom de ta classe dans le java :
Et dans ton fichier java, tu doit l'appeler :
Code : Sélectionner tout - Visualiser dans une fenêtre à part JNIEXPORT int JNICALL JAVA_android_video8_libo_getdata(JNIEnv* env, jobject obj, jint s)
Je pense que ça devrai fonctionner comme cela.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 static { System.loadLibrary("opcv"); } public native int getdata(int s);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager