android-studio下ndk的配置和简单JNI调用遇到的问题

最近在学习简单的JNI的调用,但由于我看的视频教程是用eclipse作为IDE的,而我用的是android studio1.5,所以过程中遇到的一些问题(刚刚入门,各种问题很困扰啊!)

所以来分享一下我的解决方法

studio下NDK的配置:请看这篇文章: https://segmentfault.com/a/1190000003999352    (有图,解释的挺详细的,我按这个弄得,成功了)


接下来就是写代码过程中的问题了(代码不多,先将就着看吧(还没用过markdown编辑器敲打))


这是会被调用的C代码

#include "Hello.h"

#include <stdio.h>
#include <jni.h>
jstring Java_com_example_gw_helloworldfromc_MainActivity_helloWorldFromC(JNIEnv* env,jobject obj){
return (*env)->NewStringUTF(env,"hello-world-from-c");
}
注意 Java一定要大写,后面是java调用(public native。。。)c函数的方法名所在

的路径(注意:路径一定要正确,最后的方法名和java中调用使用的方法名要完全一致,

否则会爆找不到native方法的错误)

c代码有时也是红色报错也一样可以正确运行(这个报错真是无奈的,搞了很长时间才发现,原来可以直接运行)

有时要在jni中在建一个空的.c文件才能编译通过



这是在java文件中调用C的代码

static {
System.loadLibrary("hello");//导入库,名字要一致
}
public native String helloWorldFromC();//即便能正确编译运行这个方法名也是显示为红色(android studio1.5), 不用处理这个报错也能能正确运行,不知道为啥


注意c函数库的导入要和build-gradle中命名的库名一致

很多问题还不知道解决的原理是什么,欢迎大家指教 微笑




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值