Я тестирую JNI на Android в Eclipse.Создайте собственную библиотеку в папке JNI?
У меня есть простой Android-проект с одним действием. В Project Explorer в Eclipse, я добавил:
jni/
папкуAndroid.mk
в папкеjni/
prng.c
в папкеjni/
Исходный файл с именем prng.c
, потому что он оборачивает случайное число Crypto ++ 's генератор. Crypto ++ уже перекрестно скомпилирован для ARMv7, поэтому у меня есть libcryptopp.so
.
Когда я выбираю Проект → Проект строительства, библиотека не построена. Я подтвердил, что он не был создан после очистки проекта.
Android-PRNG$ find . -iname *.so
Android-PRNG$
Вопрос: Почему Затмение не строить общий объект? Что еще нужно сделать?
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := prng
LOCAL_SRC_FILES := prng.c
include $(BUILD_SHARED_LIBRARY)
prng.c
Его в основном пустует, потому что я не могу получить javah
запустить на файл класса Java, который вызывает нативные методы. Я надеюсь исправить эту проблему.
#include <string.h>
#include <jni.h>
#include <cryptopp/osrandom.h>
static RandomNumberGenerator& GetPRNG()
{
static AutoSeededRandomPool prng;
return prng;
}
Вы можете попробовать запустить ** 'ndk-build' ** из командной строки. Я забываю, насколько Eclipse поддерживает NDK. – CommonsWare
Спасибо @CommonsWare. Какой смысл использовать Eclipse, если мне нужно использовать NDK? Разве Eclipse не может управлять всеми этими вещами после добавления соответствующих файлов Android.mk и исходных файлов? Или это недоразумение с моей стороны (и, вероятно, многие другие)? – jww
«Какой смысл использовать Eclipse, если мне нужно использовать NDK?» - um, NDK неизбежна. Попытка ** 'ndk-build' ** - это диагностический шаг, так как вы можете узнать что-то из результата, который вы не видите изнутри Eclipse. Возможно также, что вам нужно [настроить плагин NDK для Eclipse] (http://tools.android.com/recent/usingthendkplugin), если вы еще этого не сделали. Лично я не использую Eclipse для создания моего кода NDK; Я просто предлагаю пути для расследования. – CommonsWare