使用eclipse编译生成so

    xiaoxiao2021-03-25  95

    本文是百度各路大神的文章,然后自己亲自实现之后,写下来的

    留待后用,若有问题,请指正

    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

    转载请注明原文地址: https://ju.6miu.com/read-19921.html

    最新回复(0)