6、JNI 之 Eclipse配置NDK

来源:互联网 发布:中国白银集团淘宝店 编辑:程序博客网 时间:2024/05/21 07:08
工具要求:ADT + NDK(版本:android-ndk-r9d 目前最新版)


一、首先新建一个测试工程
    在工程文件上,点右键选择 Android Tools -> Add Native Support,然后输入so文件的名字就可以了

   
二、配置ADT的NDK路径
   Window -> Preference -> Android -> NDK  -> NDK Loaction
   然后找到本机的NDK路径,填进去就可以了,我的路径是:F:\Gzthss\TOOL\android-ndk-r9d

  file:///C:/Users/dupf/AppData/Local/Temp/Wiz/df44d523-a2fe-4734-a51f-d516a23b45ed_128_files/f32477e3-d662-43f3-b56f-e5ae51983fe5.png    

     
三、设置NDK的环境变量及编译脚本路径
    

    Window -> Preference -> C/C++ ->Build ->Environment -> Add 将NDK路径设置成环境变量,如图所示,然后OK保存。

 



    然后,设置编译脚本(ndk-build.cmd)的路径:
    file:///C:/Users/dupf/AppData/Local/Temp/Wiz/df44d523-a2fe-4734-a51f-d516a23b45ed_128_files/f5510161-8c70-4e34-9d30-3f4ade380370.png 


    这样就可以直接编译jni了,在也不需要Cygwin了,还是很方便的的吧!!



四、完善JNI工程
    找到目下jni文件夹下面的 ndkTest.cpp文件,写一个简单的jni函数:

    ndkTest.cpp 文件 :
#include <jni.h>
#include <string.h>
extern "C"
_jstring*  Java_com_example_ndktest_NdkTest_jniTest(JNIEnv* env,jobject thiz)
{
    return (env)->NewStringUTF("hello from jni by  ndkTest!");

}


NdkTest.java文件:
package com.example.ndktest;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;

public class NdkTest extends ActionBarActivity {

    private TextView tv = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ndk_test);

        tv = (TextView)findViewById(R.id.textView1);
        tv.setText("" + jniTest());
    }

    private native String jniTest();
    static {
        System.loadLibrary("ndkTest");
    }
}  

这时候会提示头文件找不到,因为还没有包含头文件,头文件是在ndk目录:   F:\Gzthss\TOOL\android-ndk-r9d\platforms\android-19\arch-arm\usr\include
右键工程 -> Properties ->  C/C++ General -> Path and Symbols -> Includes 标签 -> Add 将自己的NDK头文件路径包含进去就行了。
然后,在Java文件中进行调用Jni,进行编译得到结果。
 

4.png (55.95 KB, 下载次数: 0)

下载附件  保存到相册

结果

10 小时前 上传



0 0