天天看點

JNI 之 Eclipse下NDK環境配置

工具要求:

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

JNI 之 Eclipse下NDK環境配置

三、設定NDK的環境變量及編譯腳本路徑

Window -> Preference ->

 C/C++ ->Build ->Environment -> Add 将NDK路徑設定成環境變量,如圖所示,然後OK儲存。

JNI 之 Eclipse下NDK環境配置

    然後,設定編譯腳本(

ndk-build.cmd

)的路徑:

JNI 之 Eclipse下NDK環境配置

這樣就可以直接編譯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,進行編譯得到結果。

JNI 之 Eclipse下NDK環境配置

繼續閱讀