四极管:Windows JNI 实例

来源:互联网 发布:c语言预处理程序停止 编辑:程序博客网 时间:2024/05/20 05:07

安装NDK(R7, android-ndk-r7b-windows.zip,解压即可使用)

注:R7之前的版本,必须要安装Cygwin才能使用NDK。从R7开始,Windows版本的NDK提供了一个ndk-build.cmd脚本,可以直接利用这个脚本编译。想要做到这一点,只要为Eclipse Android工程添加一个Builder,就能实现Eclipse的自动编译NDK。

1.  NDK实例的实现

1.1   启动Eclipse,新建Android工程(此处名为TestNDK),如图所示:

                                 

1.2  在TestNDK工程的根目录下新建文件夹jni,之后找到NDK的安装目录(\samples\hello-jni\jni)下的 Android.mkhello-jni.c 这两个文件,将其拷贝到TestNDK->jni文件夹下面。

1.3   找到NDK的安装目录(\samples\hello-jni\src\com\example\hellojni)下的HelloJni.java文件,将其拷贝到TestNDK工程src文件夹对应的包下。

1.4  修改项目文件AndroidManifest.xml,将activity标签下的 android:name =“.TestNDKActivity”修改为 android:name =“.HelloJni”。(注:此处的

TestNDKACtivity为项目自动生成的,项目不同,此处也会不同)  

1.5   新建并配置一个Builder

1.5.1       点击Project->Properties->Builders->New,新建立一个Builder。在弹出的对话框上面点击Program,OK!如图所示:

 

                                               

1.5.2      在弹出的对话框【EditConfiguration】中,配置选项卡【Main】:

Location中需要填入nkd-build.cmd的路径(NDK安装目录下)。

Working Diretcoty中需要填入TestNDK的工程根目录。

如图所示:

1.5.3     在弹出的对话框【Edit Configuration】中,配置选项卡【Refresh】:

勾选“Refresh resources upon completion”,

勾选“The entire workspace”,

勾选“Recuresively include sub-folders”。

 

                                           

1.5.4      在弹出的对话框【EditConfiguration】中,配置选项卡【BuildOptions】:

勾选“After a “Clean””,

勾选“During manual builds”,

勾选“During auto builds”,

勾选“Specify working set of relevantresources”。

点击“Specify Resources…”勾选TestNDK工程的“jni“目录,Finish!

保存设置,OK!

1.5.5      右键点击工程TestNDK,Build Project。当在console里面看到如图所示的信息,则表示一切正常,此时就已经是自动编译代码了。

 

            

1.5.6     右键点击工程TestNDK,Run As -> Android Application, 运行程序。当出

现图所示信息时,NDK实例运行成功!

 

                                         

2.   可能出现的问题 

      如图所示:

 

                

在 c 文件中,函数名这样定义:

Java_testNDK_android_HelloJni_stringFromJNI,是因为这个是 JNI 的标准,定义需要按照如下格式:

      Java_packagename_classname_methodname ,

      例如: Java_testNDK_android_HelloJni_stringFromJNI

如果还是不行。。把这个修改为Java_testNDK_android_HelloJni_HelloJni_stringFromJNI即可。。