Android NDK и размещение функции вне класса активности

Упоминается в статье:
http://androidcookbook.com/Recipe.seam?recipeId=77

Является:

«В классе Activity вне любых методов:

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 (загрузка библиотеки, определение функции) вне действия, может ли он / он?
Я попытался решить этот вопрос, создав новый класс и импортировав его в упражнение. Я поместил библиотеку загрузки в конструктор классов и поместил определение метода в другой класс. Активность появляется загрузить библиотеку, но произойдет сбой, с ошибкой, что она не может найти функцию

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

1

Решение

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

в JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_newclass_helloWorld () {

1

Другие решения


По вопросам рекламы [email protected]