第一个.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
阅读全文
0 0
- 第一个.so文件
- 编译第一个文件
- 第一个Makefile文件
- 第一个Makefile文件
- 第一个shell文件
- 第一个bootstrap文件
- 使用NDK和Cygwin编译第一个so包
- android NDK编译多个so文件
- android NDK编译多个so文件
- android NDK编译多个so文件
- android NDK编译多个so文件
- android NDK编译多个so文件
- 如何合并多个*.so库文件
- 如何合并多个*.so库文件
- CMake生成多个.so文件
- 第一个java读写文件
- 编译第一个uefi文件
- 创建第一个HTML文件
- 10027---Linux 查看本机IP地址
- Retrofit原理浅析
- RF+Appium 测试webview:用户注册
- python3 与 Django 连接数据库:Error loading MySQLdb module: No module named 'MySQLdb'
- 客退机开不机异常分析
- 第一个.so文件
- 使用SUI与JQuery冲突的解决方法
- 干货:细数视频交友SDK的开放策略
- node error
- nginx 配置访问框架yaf,yii,laravel,thinkphp
- 阿里安全潘多拉实验室首先完美越狱苹果iOS 11.2
- 软件工程概论知识总结
- MIT-BIH Arrhythmia Database 数据下载及matlab处理程序
- leetcode 473. Matchsticks to Square 一个经典的深度优先遍历DFS的应用