Je suis en train de tester JNI sur Android dans Eclipse. J'ai un projet Android simple avec une activité. Dans l'explorateur de projet Eclipse, j'ai ajouté:Construire la bibliothèque native dans le dossier JNI?
jni/
dossierAndroid.mk
dans le dossierjni/
prng.c
dans le dossierjni/
Le fichier source est nommé prng.c
parce qu'il enveloppe de nombre aléatoire Crypto ++ Générateur. Crypto ++ est déjà compilé pour ARMv7, donc j'ai libcryptopp.so
en attente.
Lorsque je sélectionne Projet → Projet de construction, la bibliothèque n'est pas construite. J'ai confirmé qu'il n'était pas construit après le nettoyage du projet.
Android-PRNG$ find . -iname *.so
Android-PRNG$
Question: Pourquoi Eclipse pas la construction de l'objet partagé? Que faut-il faire d'autre?
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := prng
LOCAL_SRC_FILES := prng.c
include $(BUILD_SHARED_LIBRARY)
prng.c
Son essentiellement vide au moment parce que je ne peux pas javah
à exécuter sur le fichier de classe Java qui appelle les méthodes natives. J'espère pouvoir résoudre ce problème ensuite.
#include <string.h>
#include <jni.h>
#include <cryptopp/osrandom.h>
static RandomNumberGenerator& GetPRNG()
{
static AutoSeededRandomPool prng;
return prng;
}
Vous pouvez essayer d'exécuter ** 'ndk-build' ** à partir de la ligne de commande. J'oublie à quel point Eclipse supporte NDK. – CommonsWare
Merci @CommonsWare. Quel est le point d'utiliser Eclipse si j'ai besoin d'utiliser le NDK? Eclipse n'est-il pas supposé gérer toutes ces choses une fois que les fichiers Android.mk et les fichiers source pertinents sont ajoutés? Ou est-ce un malentendu de ma part (et probablement beaucoup d'autres)? – jww
"Quel est le point d'utiliser Eclipse si j'ai besoin d'utiliser le NDK?" - um, le NDK est inévitable. Essayer ** 'ndk-build' ** est une étape de diagnostic, car vous pouvez apprendre quelque chose de la sortie que vous ne voyez pas à l'intérieur d'Eclipse. Il se peut également que vous deviez [configurer le plugin NDK pour Eclipse] (http://tools.android.com/recent/usingthendkplugin), au cas où vous ne l'auriez pas encore fait. Personnellement, je n'utilise pas Eclipse pour construire mon code NDK; Je ne fais que suggérer des pistes d'investigation. – CommonsWare