文中提到: 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 操作(加载库、定义函数)放在 Activity 之外,她/他可以吗?
我试图通过创建一个新类并将其导入到 Activity 中来解决这个问题。我将加载库放在类构造函数中,并将方法定义放在另一个类中。 Activity 出现加载库但会崩溃,错误是找不到函数
编辑以添加详细信息: 我再次尝试此操作,但将 loadLibrary 函数放回 Activity 中。我得到相同的崩溃报告: java.lang.UnsatisfiedLinkError: 找不到 native 方法:
最佳答案
看来我已经找到了问题所在,这是我的一个疏忽。 您可以从导入的类中加载库,并且可以将方法定义放在导入的类中。但是,您必须这样修改函数: 初始 header :JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_MainAcitivty_helloWorld(){
到 JNIEXPORT jobjectArray JNICALL Java_com_stackoverflow_newclass_helloWorld(){
关于Android NDK,并将功能放在 Activity 类之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29305939/