Android Studio - Gradle项目 - NDK开发 - JNI编译中引用本地so - 记录
来源:互联网 发布:摄像头录制软件 编辑:程序博客网 时间:2024/04/27 14:06
最近自己捣鼓一个小工具,需要用到JNI,发现和Eclipse中不太一样(用gradle配置文件代替Android.mk文件),碰到了无法在jni编译中引用本地so问题,记录一下:
1 平台: Android Studio 1.5,Gradle 2.8
2 ndk最好是用最新的版本,我用的是 ndk-r10e。用ndk-r10d及以下编译可能会出现 no rule to make target 错误。
3 引用本地so:
3.1 本地so一般放在src/main/jniLibs/目录下(Gradle默认会将该目录的库打包到apk),也可在sourceSets.main中自己配置路径 jniLibs.srcDirs。
3.2 在jni编译中引用本地so:
如果在jni编译中需要引用本地so,在 ndk.ldLibs 属性中加入要引入的so的绝对路径即可,例子如下:
android {
//...
defaultConfig {
//...
//ndk配置
ndk {
moduleName "test"
//引用本地so
String libZipPath = new File("./").canonicalPath + "\\app\\src\\main\\jniLibs\\armeabi\\libzip.so"
ldLibs "log", "android", "z", libZipPath
}
//...
}
sourceSets.main{
//自定义jni目录
jni.srcDirs "src/main/jni/libzip", "src/main/jni"
//自定义libs目录
jniLibs.srcDirs "src/main/jni/jinLibs"
}
//...
}
注1:该方法使用groovy的new File函数来获取绝对路径。
注2:该方法参考了 http://stackoverflow.com/questions/32171259/opencv-with-android-studio-1-3-using-new-gradle-undefined-reference。
如有错误请各位指正,谢谢。
- Android Studio - Gradle项目 - NDK开发 - JNI编译中引用本地so - 记录
- Android Studio Gradle项目中添加JNI so文件
- Android studio NDK-JNI 编译so文件
- Android Studio NDK JNI开发入门记录
- 【android ndk】macos环境下Android Studio中利用gradle编译jni模块及配置
- 【android ndk】macos环境下Android Studio中利用gradle编译jni模块及配置
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android][Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- android studio中使用ndk编译.so文件,调用C/C++代码(jni编程)
- Android Studio-Gradle项目中添加JNI生成文件(.so文件)
- [Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- Android Studio-Gradle项目中添加JNI生成文件(.so文件)
- Android Studio-Gradle项目中添加JNI生成文件(.so文件)
- [Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- [Android Studio] Gradle项目中添加JNI生成文件(.so文件)
- Android Studio-Gradle项目中添加JNI生成文件(.so文件)
- 费用预算
- 以访客至上的网页设计(三)
- linux at命令详解
- BZOJ 3123: [Sdoi2013]森林|主席树|启发式合并
- RedHat配置光盘源
- Android Studio - Gradle项目 - NDK开发 - JNI编译中引用本地so - 记录
- Android 社交娱乐聊天APP
- 测试php7的一些新特性
- everything of people’s life can changed in their twenties
- 检索问题“Where to Buy It: Matching Street Clothing Photos in Online Shops”
- php学习笔记
- vim+python+OpenCV学习一 : 图像显示
- OC的runtime(运行时)运行机制及应用场景
- 7个CSS单位