使用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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章