JNI调用错误: No implementation found for ....

在Java中调用JNI接口时,出现异常,察看日志,发现有如下错误:

 No implementation found for boolean com.demo.AddFriendActivity.addFriend(int)

检查了几遍代码,Cpp中确实定义了这个接口,而且仔细对照了Java的包名、类名,确实没有错误,那为什么会出现这种问题呢?后来在网上查资料,得到结果:JNI接口 都是以C的方式定义的,现在使用C++实现,函数要加上extern “C”。
2种改法:
1.直接在函数实现的地方加上extern “C”。如下:

extern "C"{

JNIEXPORT jboolean JNICALL
Java_com_demo_AddFriendActivity_addFriend(JNIEnv *env, jclass clazz, jint asas){
    return JNI_FALSE;
}	

}

2.加一个头文件,在CPP文件中include该头文件,头文件加上如下代码片:

#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jboolean JNICALL
	Java_com_demo_AddFriendActivity_addFriend(JNIEnv *env, jclass clazz, jint asas);

#ifdef __cplusplus
}
#endif

问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值