【问题标题】:Static native method: cannot resolve corresponding JNI function静态原生方法:无法解析对应的 JNI 函数
【发布时间】:2018-04-16 11:19:38
【问题描述】:

我在声明静态本机方法时遇到了上述错误:

从本机端,链接按预期工作:

一切都按预期工作,问题只是从 java 到本地引用的链接(Android Studio 3.1.1)对于静态(适用于非静态方法)方法被破坏。

【问题讨论】:

  • 必须是public,即public static native void jniInitCore();Java一侧。
  • 不,不是。我有正确链接的私有非静态方法。我不认为它的代码相关,因为一切正常。我认为它在项目/android 工作室级别设置上。
  • 在最近的升级之前我没有看到这个。我为此错误打开了ticket
  • 他们 promise 在 3.2 的下一个金丝雀版本中修复此问题。

标签: android android-studio android-ndk java-native-interface


【解决方案1】:

有一个有趣的解决方法:

  1. 删除 Java 中的“静态”一词。
  2. 单击红色灯泡以“创建函数 Java_…_jniInitCore()”
  3. 在 Java 文件中恢复单词“静态”。

【讨论】:

    【解决方案2】:

    尝试将JNI方法中第二个参数的类型从jclass改为jobject。为我工作

    【讨论】:

      【解决方案3】:

      我不是专家,但我将第二个参数从 jobject 更改为 jclass,它对我有用。

      【讨论】:

        猜你喜欢
        • 2018-07-05
        • 2017-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-09
        • 1970-01-01
        相关资源
        最近更新 更多