【问题标题】:UnsatisfiedLinkError when calling native function调用本机函数时出现 UnsatisfiedLinkError
【发布时间】:2012-12-13 09:15:11
【问题描述】:

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

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

【问题讨论】:

  • @blackbelt 不,它是用于连接智能卡的 MSC 库
  • MSC 留下来换肌肉卡?
  • 不,它来自 seek-for-android。

标签: android android-ndk java-native-interface shared-libraries unsatisfiedlinkerror


【解决方案1】:

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

【讨论】:

  • 哦..我忘了它..那很难过。感谢回复
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多