0

我可以使用 成功加载本机库System.loadLibrary(""),但是当我从该库调用本机方法时,我收到UnsatisfiedLinkError,没有找到该方法的实现。

但是这段代码在另一个应用程序中工作,不知何故在我的不是。

4

2 回答 2

3

您是否更改了 jni 方法中的 packageName,它应该是Java_com_example_yourapp_methodname(JNIEnv * env, jobject thiz)com_example_yourapp 对您调用该方法的类的包的引用。在那之后,你又打电话ndk-build了吗?

于 2012-12-13T09:24:49.680 回答
1

建议使用 Erik N 方法,但它对性能有一些影响,因为 VM 需要搜索具有上述签名的函数调用。相反,您可以使用签名映射函数并将它们注册到 JNI_OnLoad() 函数调用中。

http://docs.oracle.com/javase/1.4.2/docs/guide/jni/spec/functions.html#wp5833

于 2012-12-18T10:07:31.243 回答