J'essaie d'importer un projet Android dans mon Eclipse. Lorsque j'exécute ce projet, j'obtiens une erreur, "library is null". J'ai compris que ce projet était différent, il contient un fichier nommé "jni". Ma bibliothèque se trouve dans ce fichier. Je suppose que la bibliothèque contenue dans ce fichier n'a jamais été compilée (je ne sais pas pourquoi). J'ai vu dans certains sujets que je devais utiliser le NDK ? J'ai vu dans un article que je devais utiliser le NDK. Quelqu'un a t-il une réponse claire à ce sujet ?
Réponse
Trop de publicités?Voir les liens ci-dessous. lien pour télécharger le ndk échantillon 1 échantillon 2
Étape 1 : Créez d'abord un projet, puis créez un dossier nommé jni dans votre répertoire de projet.
Étape 2 : Créez le fichier addition.c dans le dossier jni et ajoutez les lignes ci-dessous.
#include "com_ndkadd_Addition.h"
JNIEXPORT jint JNICALL Java_com_ndkadd_Addition_messageFromNativeCode
(JNIEnv * env, jobject jObj,jint value1, jint value2)
{
return (value1 + value2);
}
Étape 3 : Créer le fichier Android.mk dans le dossier jni et le code suivant
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := Addition
LOCAL_SRC_FILES := addition.c
include $(BUILD_SHARED_LIBRARY)
Étape 4 : Naviguez dans le dossier bin de votre projet à partir de l'invite de commande. Tapez la ligne ci-dessous et appuyez sur entrée.
javah -jni com.ndkadd.Addition
Étape 5 : Déplacer le fichier créé com_ndkadd_Addition.h dans le dossier jni.
Étape 6 : Maintenant, compiler le code natif comme ci-dessous à partir de l'invite de commande.
location_of_ndk\project_name> location_of_ndk\ndk-build
Étape 7 : ci-dessous le code de votre activité et l'utilisation du fichier .so créé dans votre dossier libs.
public class Addition extends Activity {
TextView txtHello;
static
{
System.loadLibrary("Addition");
}
public native int messageFromNativeCode(int v1,int v2);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView txtHello = new TextView(this);
txtHello.setText(""+messageFromNativeCode(5,5));
setContentView(txtHello);
}
}
Note: : Il est préférable d'avoir le NDK à l'endroit où vous avez le SDK et le projet contenant la JNI dans le dossier Android-ndk-r8.