Android下调用c/c++程序,将c/c++程序转换成.SO文件(学习汇总篇)

来源:互联网 发布:医学生刷题软件 编辑:程序博客网 时间:2024/06/08 03:21

1、流程:(1)搭建环境

                 (2)编写jni的java接口   

                        [1、Android输出内容和形式的编写res/values/string.xml;

                         2、编译主界面的布局res/layout/main.xml一般情况下,编写EditTex控件、Button控件;

                         3、编写scr 下的 libname.java 程序,加载动态链接库(名),链接native本地代码,用jni接口调用本地代码

                         4、编译生成.classs文件]

                 (3)编写jni(.c和.h实现)

                        [1、在classes目录下生成.h文件;2、新建jni文件夹,将.h文件拷贝到jni目录下,编写.c文件,将java接口写入。编译.c成功。]

                 (4)编译jni(编译.c,生成.so)

                        [1、编写Android.mk文件,编译生成.so]

                   (5)  java层调用:libJNITest.so文件拷贝到模拟器的/system/lib目录下,执行以下命令:

                         http://blog.csdn.net/xnwyd/article/details/7086384#  (有一些问题)

                        http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0415/1166.html  (简单程序,可以成功运行)

 

 

Android NDK调试程序,问题解答:

1、但是一直编译不通过,提示上面的test()未定义,经过查找发现编译的时候有一个警告:

代码:
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module hello-jni

意思是不支持源文件扩展名。
可是我已经设置变量添加了cxx的扩展名的支持了,为什么还出现这种情况?

最后我把LOCAL_CPP_EXTENSION += .cxx从Android.mk中剪切到Application.mk文件中,清理项目,重新编译,编译通过!

2、unused static function 'SWIG_JavaThrowException'

0 0
原创粉丝点击