1

文章中提到: 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: Native method not found:

4

1 回答 1

1

看来我已经找到了问题,这是我的一个疏忽。您可以从导入的类中加载库,并且可以将方法定义放在导入的类中。但是,您必须将函数修改为: 初始标头:JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_MainAcitivty_helloWorld(){

JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_newclass_helloWorld(){

于 2015-03-27T17:43:56.943 回答