具体配置过程就不冗述了,网上一搜一大堆。主要是:java
1)下载Android NDK;windows
2)安装Cygwin;eclipse
3)在Cygwin中配置Android NDK的环境变量。说白了,就是将windows系统下的NDK路径映射到Cygwin环境下,以便后期编译的时候能找到对应目录;工具
4)在Eclipse中设置Android project的属性,经过设置working环境与命令,调用Cygwin的编译工具来生成动态链接库。ui
安装Cygwin是为了与NDK工具一块儿生成本地代码的动态链接库。具体的调用命令能够在eclipse中的project属性里设置。code
我在配置完成以后翻了一个错误,虽然能正常build出so,可是在run的时候老是提示"java.lang.UsatisfiedLinkError",一直没有找到问题缘由,后来忽然想到jni代码是从NDK sample中copy过来,而调用Native code的Class是本身定义的,跟sample中的不同。会不会是Java Class的package name与class name不一致形成的呢?打开JNI代码一看,发现Natave方法的命名颇有规则:Java_com_example_hellojni_HelloJni_stringFromJNI com_example_hellojni应该就是调用Native code的Java package,HelloJni应该就是调用Native code的Java class。而本身的Java Class所在package与sample中一致,区别的只是Class name,故对本身的Class rename,ok,顺利运行!ip