Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题
来源:互联网 发布:mysql replace into 编辑:程序博客网 时间:2024/05/21 10:49
Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题
首次使用Android Studio进行NDK开发会遇到很多问题, 我在此将自己的经验分享给大家
直接上配置比较直观
下面是在项目 app源根文件夹下build.gradle文件的配置, 都写明了注释
android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.lance.ndkexample" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" // 不声明ndk标签,项目默认会创建一个libapp.so的文件 ndk { // 声明创建so库的文件名,会自动添加lib前缀, 添加了前缀,不会自动添加 moduleName "MathKit" //声明启用Android日志, 在c/c++的源文件中使用的#include <android/log.h> 日志将得到输出 ldLibs "log" // 声明创建指定cpu架构的so库, 不声明的话, 默认(gradle 1.5.0)会生成4中架构 多一种mips架构 // 具体cpu架构的区别请参考: // for detailed abiFilter descriptions, refer to "Supported ABIs" @ // https://developer.android.com/ndk/guides/abis.html#sa abiFilters "armeabi", "armeabi-v7a", "x86" } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main { // 1. 配置在根目录libs下可以加载第三方so库, (最好不要创建jniLibs, 在众多的开源库中可能会引起冲突,还没发现) // 2. 运行时会自动将libs目录下的so库拷贝到指定目录 // 3. 如果自己创建的so不需要重新编译,可以将(app/build/intermediates/transforms)生成的so拷贝到这个目录 jniLibs.srcDirs = ['libs']// 如果是单个文件夹 可以直接这样如下配置// jniLibs.srcDir 'libs'
} }}
另外还有几处需要配置
项目根文件夹下的gradle.properties文件中添加如下配置(解决AS中NDK插件过时不能编译的问题)
android.useDeprecatedNdk=true
local.properties 文件中添加idk所在路径, 与添加sdk文件夹路径一样的做法
ndk.dir=/Apache/android-ndk-r10b
这里需要注意sourceSets节点的配置, 用于配置so库加载的位置
如果不配置的话Android Studio默认的加载位置在java 同级目录 jniLibs, 没有的话需要手动创建, 将对应cpu架构的so放到对应的目录
项目基本上都能顺利调用so库了
然后就木有然后了
0 0
- Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题
- Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题 .
- Ndk(jni)调用第三方的so库
- android开发ndk调用第三方so库
- android开发ndk调用第三方so库
- android开发ndk调用第三方so库
- android开发ndk调用第三方so库
- android ndk 怎样调用第三方的so库文件
- Android studio jni内调用第三方so
- Android studio jni内调用第三方so
- Android JNI层加入第三方.SO库
- Android NDK——使用Android Studio引用so库,jar包及module并使用JNI的正确姿势
- android studio 使用第三方so方法及注意
- Android NDK编译中在libs\armeabi中加入第三方so库文件的方法
- android ndk 调用第三方so
- android ndk 调用第三方so
- Android NDK 开发无法导入第三方so问题
- Android Studio中使用JNI和第三方.so库
- gem install 出现Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org
- easyui使用layou时自适应窗口
- GreenDAO(一)
- jboss7数据库连接池配置
- iOS框架整理
- Android Studio NDK开发 正确调用jni 及加入第三方so库需要注意的问题
- 修改golang最大内存限制
- Xcode7插件开发:从开发到拉到恶魔岛
- 堆排序
- Kotlin学习之枚举类
- VB 动态数组,文件读写
- 隐式转换
- 树莓派学习心得
- getRequestDispatcher 与 sendRedirect 的区别