第一个.so文件

来源:互联网 发布:超链接宣传单制作软件 编辑:程序博客网 时间:2024/06/05 21:57

第一次写博客,2017.12.14,纪念一下^-^

废话不多说,直接开搞:

如何生成你的第一个.so文件?


1、配置ndk
2、编辑源码
3、生成.so文件


一、配置ndk


参考:http://blog.csdn.net/tongseng/article/details/53005123


二、编辑源码

1、创建.so文件的工具类,并生成.h文件

这里写图片描述


2、创建jni文件

这里写图片描述


3、把.h文件拖进jni文件夹,并创建main.c文件

这里写图片描述


4、在main.c文件书写以下代码

#include "com_um_jkdemo_JniText.h"//注意替换成自己的   引入.h文件JNIEXPORT jstring JNICALL Java_com_um_jkdemo_JniText_getJniString//注意替换成自己的(JNIEnv *env, jclass jclz){   return (*env)->NewStringUTF(env,"String from JNI");//返回值}

5、配置gradle

 android {    compileSdkVersion 26    buildToolsVersion "27.0.1"    defaultConfig {        applicationId "com.um.jkdemo"        minSdkVersion 15        targetSdkVersion 26        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"        ndk{            moduleName "jni_text"//moduleName 和System.loadLibrary("Name");中的Name要保持一致            ldLibs"log","z","m"            abiFilters"armeabi","armeabi-v7a","arm64-v8a","mips","mips64","x86","x86_64"        }    }//防止报错(Error:(81) Android NDK: Application targets deprecated ABI(s): mips64 armeabi mips)    splits {        abi {            enable true            reset()            include 'armeabi','armeabi-v7a', 'arm64-v8a',  'mips', 'mips64','x86', 'x86_64'  //select ABIs to build APKs for            universalApk true //generate an additional APK that contains all the ABIs        }    }sourceSets { main { jni.srcDirs = ['src/main/jni', 'src/main/jni/JniText'] } }

三、生成.so文件

1、直接运行项目得到.so文件
2、路径
这里写图片描述


注意事项

1、gradle中的moduleName 一定要和 System.loadLibrary(“Name”);中的name一摸一样,区分大小写。

2、main.c文件中的.h文件一定要替换成自己的,以及方法名

3、执行javah命令时区分大小写


参考

http://blog.csdn.net/sw5131899/article/details/77183352


end

原创粉丝点击