ndk吧 关注:3,601贴子:4,795
  • 3回复贴,共1

jni调用native遇到java.lang.UnsatisfiedLinkError问题

只看楼主收藏回复

在eclipse里配置好交叉编译,使用add native support后生成的jni目录和xxx.cpp文件,之后发现自己编写的native函数命名格式完全正确,ndk-build通过,apk成功安装,却出现java.lang.UnsatisfiedLinkError异常,原因是手写jni的时候一般用的是.c纯c代码,而使用add native support得到的是cpp,并且编译器定义了__cplusplus宏,但是上层java代码需要调用的是c风格的函数,所以要在cpp中使用extern "C"{}包裹代码,java端调用成功。
和以前c#调用mfc dll遇到的问题有点类似。


IP属地:广西1楼2013-08-06 02:02回复
    extern"C” c++要加这个


    2楼2014-02-20 16:44
    收起回复
      2026-01-20 04:33:46
      广告
      不感兴趣
      开通SVIP免广告
      更多的可以参见贴吧的帖子:“ndk java 和 c 互掉”


      IP属地:广东3楼2014-07-31 03:56
      回复