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