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",以后我就不反复强调了.
编译成功,运行代码:
成功打印.