Android 静态本机方法:无法解析相应的JNI函数

Android 静态本机方法:无法解析相应的JNI函数,android,android-studio,android-ndk,java-native-interface,Android,Android Studio,Android Ndk,Java Native Interface,我在声明静态本机方法时遇到上述错误: 从本机端,链接按预期工作: 一切都按预期运行问题只是从java到本机引用的链接(Android Studio 3.1.1),对于静态(适用于非静态)方法,该链接被破坏。存在一个有趣的解决方法: 删除Java中的“static”一词 单击红色灯泡以“创建函数Java_…\ujninitcore()” 在Java文件中还原单词“static” 存在一个有趣的解决方法: 删除Java中的“static”一词 单击红色灯泡以“创建函数Java_…\ujninit

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

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


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

存在一个有趣的解决方法:

  • 删除Java中的“static”一词
  • 单击红色灯泡以“创建函数Java_…\ujninitcore()”
  • 在Java文件中还原单词“static”

  • 存在一个有趣的解决方法:

  • 删除Java中的“static”一词
  • 单击红色灯泡以“创建函数Java_…\ujninitcore()”
  • 在Java文件中还原单词“static”

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

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

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

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

    必须是公共的,即
    公共静态本机void JNInitcore()
    Java
    端。不,不是。我有正确链接的私有非静态方法。我不认为它的代码相关,因为一切正常。我认为这是一个项目/android studio级别的设置。在最近的升级之前,我没有看到这一点。我为这个bug打开了一个补丁。他们希望在下一个3.2版本的金丝雀版本中修复这个漏洞。必须是公共的,即
    public static native void jninitcore()
    Java
    端。不,不是。我有正确链接的私有非静态方法。我不认为它的代码相关,因为一切正常。我认为这是一个项目/android studio级别的设置。在最近的升级之前,我没有看到这一点。我为这个bug打开了一个补丁。他们希望在下一个3.2版本的金丝雀版本中修复这个bug。