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"
Version imprimable
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 çaCode:
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.hCode:
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 çaCode:
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 rienCode:
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:JNIEXPORT int JNICALL JAVA_android_video8_libo_getdata(JNIEnv* env, jobject obj, jint s)
Je pense que ça devrai fonctionner comme cela.Code:
1
2
3
4 static { System.loadLibrary("opcv"); } public native int getdata(int s);