2014-08-30 1 views
1

Я тестирую 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; 
} 
+0

Вы можете попробовать запустить ** 'ndk-build' ** из командной строки. Я забываю, насколько Eclipse поддерживает NDK. – CommonsWare

+0

Спасибо @CommonsWare. Какой смысл использовать Eclipse, если мне нужно использовать NDK? Разве Eclipse не может управлять всеми этими вещами после добавления соответствующих файлов Android.mk и исходных файлов? Или это недоразумение с моей стороны (и, вероятно, многие другие)? – jww

+0

«Какой смысл использовать Eclipse, если мне нужно использовать NDK?» - um, NDK неизбежна. Попытка ** 'ndk-build' ** - это диагностический шаг, так как вы можете узнать что-то из результата, который вы не видите изнутри Eclipse. Возможно также, что вам нужно [настроить плагин NDK для Eclipse] (http://tools.android.com/recent/usingthendkplugin), если вы еще этого не сделали. Лично я не использую Eclipse для создания моего кода NDK; Я просто предлагаю пути для расследования. – CommonsWare

ответ

2

Это действительно очень легко с ADT в течение последних нескольких лет; Раньше было намного хуже. Плагин, описанный в связанном post, поставляется предварительно установленным; вам все еще нужно

1 установить NDK

2 установить путь к нему в Preferences/Android/NDK меню

3 правой кнопкой мыши на вашем Android проекта, Android Tools/Add Native Support

... и теперь вы все сделали ,