Android NDK 初探

来源:互联网 发布:淘宝图片尺寸 编辑:程序博客网 时间:2024/06/05 17:43

这两天在整Android NDK的调研

          首先下载NDK包 http://developer.android.com/tools/sdk/ndk/index.html(注:android sdk ,java 神马的就不用多说了,自己装就ok了)

          然后再NDK解压包的目录 samples 目录下有它提供的例子如下图所示,一次打开hello-gl2文件如图所示。。

       

          我们编写的C/C++程序都放在jni文件下。。其中Android.mk主要负责android程序的编译。。具体介绍可以看如下链接:android.mk简介:http://www.cnblogs.com/hnrainll/archive/2012/12/18/2822711.html

          然后你就可以在Eclipse中导入你所要的Project文件了。如果直接导入,如果你点击直接运行,是会出错的。。

问题在于,你导入运行的文件中C/C++文件没有编译,Eclipse目前也不认识这些文件,不能进行编译。。所以不能直接运行,即使能运行,也不正常。

        那么解决这个问题有两个办法:

1、先在命令行里编译这些文件,在导入到Eclipse下:

       如果出现上图情况,表示你编译成功了。。现在导入到Eclipse后,就能正常运行了。

2、在Eclipse下进行配置:

        在Preferences,Android,NDK中配置你的NDK Location:

然后再:在你的工程Project选择Android Tools,Adding Native Support。。主要是你在写JAVA程序时,如果要调用C/C++程序的话,就需要声明native方法。。以调用非java的接口。。然后你点击运行就可以了。。O(∩_∩)O哈哈~

       

           在具体看NDK中C/C++文件的时候,会出现Symbol  could not be resolved 的问题。明明在头文件中定义了一个变量或者常量,但是就是不能正常使用,如果你自己定义一个,又会报重复定义的错。。很纠结啊。。主要感觉是单个NDK来编译这些C/C++还是弱了一点,需要更多的库或标准的支持。

          具体解决方法:下载MinGw 或者 Cygwin,在对应的Project C/C++ General ,Paths and Symbols 中Includes中添加一些库。。我添加了下图中的头两个,然后重启了Eclipse,问题解决了。。

       

参考资料:

 Symbol could not be resolved

http://www.eclipse.org/forums/index.php/t/285005/

原创粉丝点击