2009-11-29 3 views
2

Я пытаюсь использовать ранее существовавшую родную библиотеку C в моем проекте андроида .. Библиотека строит отлично с помощью инструментов NDK ...Android NDK: объявления функции автогенерации?

Теперь я понял, что я не могу просто позвонить в библиотеку, но моя библиотека должна включать в себя jni.h и добавить специальные объявления функций, как, например:

JNIEXPORT jint JNICALL Java_com_MultPkg_Mult_mult(JNIEnv *, jobject, jint, jint); 

но поскольку я использую существующую библиотеку я, который также используется на других платформах, я не» t как идея засорения всего кода этими определениями, которые только завершат мои реальные функции ...

Есть ли способ обойти это? И если это действительно единственный способ, есть ли способ автоматически генерировать их на основе моих существующих объявлений функций C?

Высокой оценки

ответ

1

Используйте javah инструмент, который поставляется вместе с JDK, поскольку это не входит в SDK андроида ни НКА.

0

Используйте SWIG для автоматического создания jni-совместимого c-файла. Он также генерирует класс .java, чтобы ваш андроид взаимодействовал с классом java, в котором есть все собственные методы.

Посмотрите на это: SWIG Android