使用eclipse編譯生成so

本文是百度各路大神的文章,然後自己親自實現之後,寫下來的

留待後用,若有問題,請指正

1:新建一個項目,包名別帶下劃線     以免後面.c文件分不清:

2:然後新建一個調用類:

public class HelloJni{

static{
        System.loadLibrary("");;//暫時不寫加載什麼類   後面生成好後再填上去
    }
    
    public native String getText();
    
}

3:項目右鍵   Android Tolls ----> Add Native Surport...填上想要的SO庫名字,生成mk  cpp文件

       這樣就會在項目裏面生成一個jni文件夾,可以看到Android.Mk和  xxx.cpp

4:打開CMD窗口,cd到項目的bin文件夾下面的classes,然後點右鍵運行項目,不需要真實運行,在選擇設備的時候取消就是了,運行的目的是生成.class文件

      在classes文件夾裏面,找到JniSo.class,此時切換到CMD   輸入  javah -classpath . -jni com.example.jniget.HelloJni(JniSo的包名加類名)

      運行之後如果沒報錯,就會在classes文件夾下生成一個com_example_jniget_HelloJni.h,將他複製到項目的jni文件夾下

5:編寫.cpp文件    打開xxx.cpp文件,輸入

#include <string.h>
#include <jni.h>

jstring Java_com_example_jniget_HelloJni_getText(JNIEnv* env, jobject thiz) {
    return (*env)->NewStringUTF(env, "--------------\n------------------\n----------\n");
}

這裏是.c,所以可能和網上其他文章有差別,因爲.cpp是用C++   .c就是用C

6:選中項目,ctrl+B,構建之後,就能在libs文件夾下看到對應生成的SO文件

7:把so文件的名字前面的lib去掉填入上面的load裏面,然後就可以在其他地方調用


簡單的項目地址:http://download.csdn.net/detail/qq_24179679/9776799

發佈了38 篇原創文章 · 獲贊 7 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章