2015-03-27 3 views
0

Упомянутый в статье: http://androidcookbook.com/Recipe.seam?recipeId=77Android NDK, а также размещение функция вне деятельности класса

Is:

"В классе активность, вне каких-либо методов:

static { 
    System.loadLibrary("sqrt-demo"); 
} 
// In a method of the Activity class where you need to use it: 
double d = SqrtDemo.sqrtC(123456789.0); 

"

Если дизайнер хочет разместить все действия NDK (загрузка библиотеки, определение функции) outsi Это может быть он?
Я попытался решить этот вопрос, создав новый класс и импортировав его в действие. Я поместил библиотеку загрузки в конструктор классов, и я поместил определение метода в другой класс. Активность появляется для загрузки библиотеки, но произойдет сбой с ошибкой, что он не может найти функцию

Изменить, чтобы добавить детали: Я попытался это снова, но помещая функцию LoadLibrary назад в деятельности. Я получаю тот же отчет об ошибке: java.lang.UnsatisfiedLinkError: Native метода не найдено:

+0

"появляется", чтобы загрузить библиотеку как? Вам необходимо опубликовать сообщения журнала, как те, которые приводят к такому выводу, так и сообщения о самой аварии. И, наконец, вам нужно опубликовать код собственной реализации функции. –

ответ

1

Оказывается, я нашел этот вопрос, он был обозревает с моей стороны. Вы можете загрузить библиотеку из импортированного класса, и вы можете поместить определение метода в импортированный класс. ВЫ ДОЛЖНЫ однако изменить функцию так: первоначальный заголовок: JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_MainAcitivty_helloWorld() {

в JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_newclass_helloWorld() {