菜鸟跟大家一起学ndk(三)

jni支持c,c++,所以我这里想把test.c改为test.cpp


然后"make project" 为了生成新的so.



报了一个奇怪的错误,不管他,再"make project"一次就成功了.

运行代码.



what?这貌似是没有找到对应的native方法呀,重新再把文件改为.c,"make project",唉  是可以的呀.

怪我不懂c++.



如果是c++的话,需要使用extern "C"{} 把方法包含起来.



这里我还想使用C代码,打印一串Log.

稍微知道点C的童鞋,可能就想直接使用'printf'方法来打印了,可惜完全看不到输出,参考下下面的文章

http://blog.sina.com.cn/s/blog_6dc41baf0101fiq3.html


所以这里还是使用NDK 中的打印方法.



其实刚刚开始写ndk的一个问题是,不太了解系统提供了哪些库,我们究竟能调用哪些方法......我也是这么想的...只能一步步积累了,就像刚开始学习Android,我也不太清楚有哪些

API,现在就比较熟练了,都是熟能生巧的事.

这里我使用的是 _android_log_print方法,第一个是指定Log的等级,第二个是Log的Tag,第三个是Log的内容.

其实跟Java代码中使用的Log.e是对应的.这里就不详细介绍了.


写完代码后,"make project"发现错误. 

这里是因为,我们使用的系统库,没有引用进来.

如下:


在gradle文件中修改了东西,需要点击下"gradle"按钮,编写了.c文件,希望重新生成.so文件,点击"make project",以后我就不反复强调了.

编译成功,运行代码:



成功打印.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值