代码之家  ›  专栏  ›  技术社区  ›  oleg_phorostyna

jni函数悖论

  •  0
  • oleg_phorostyna  · 技术社区  · 7 年前

    为什么android studio会强调jni函数的定义,即使它生成了jni函数?例如: 函数声明-

    Declared functions

    接下来,我使用alt+enter在cmakelist.txt指定的文件中生成这些函数:

    Generated output

    但是函数定义一直是红色的:

    enter image description here

    我找到了解决方法:在函数第二个参数中将“jClass类型”更改为“jobject类型”,问题就消失了!!!!jClass类型-参数表示声明JNI函数的类。从图片中,您可以看到jni函数是静态的,因此它必须是“jClass类型”(正如android studio建议的那样),而不是“jobject”。这让我很困惑… 有人有解释吗????

    0 回复  |  直到 7 年前