相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式。
Android studio中默认使用的是gradle编译方式,与ADT编辑方式不一样,那么so文件应当如何引入呢?

其实很简单。这里以集成JPUSH为例,看一下so文件如何引入到编译环境,最终到JNI直接可以调用该so文件。
首先,在我们的Module的根目录中建立libs目录,将jpush集成SDK中的so文件分别拷入,截图如下:
然后就是编写我们的build.gradle文件。
关于so文件引入的配置很简单,代码配置如下:
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "**/*.so")
into "lib"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
自定义一个任务,在其中指定项目所依赖的so文件的目录,这里用了**/*.so来写,为了省事,指定需要拷入的目录 into "lib",那么动态运行库就被拷入到lib目录中。
完整的build.gradle文件如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
applicationId "com.wujay.footerballstar"
minSdkVersion 8
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
task nativeLibsToJar(type: Zip, description: "create a jar archive of the native libs") {
destinationDir file("$projectDir/libs")
baseName "Native_Libs2"
extension "jar"
from fileTree(dir: "libs", include: "**/*.so")
into "lib"
}
tasks.withType(JavaCompile) {
compileTask -> compileTask.dependsOn(nativeLibsToJar)
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.0'
compile files('libs/jpush-sdk-release1.7.2.jar')
compile files('libs/umeng_sdk.jar')
compile files('libs/libammsdk.jar')
}
基于有人在评论区提问,这里补充一下,有一个更为快捷轻快的配置方法
那就是在build.gradle配置中,配置如下的信息:
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
你的so包可以放在lib目录下,跟jar包放在同样的目录,如lib/armeabi/libjpush172.so。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# studio引入so
# studio
# so
# studio导入so
# Android studio so库找不到问题解决办法
# Android Studio 报错“app:processDebugResources"解决方法
# 详解Android Studio如何导入第三方类库、jar包和so库
# 浅谈Android Studio JNI生成so库
# Android Studio打包.so库到apk中实例详解
# Android Studio工程引用第三方so文件的方法
# 放在
# 第三方
# 的是
# 是在
# 出了
# 那就
# 用了
# 很简单
# 自定义
# 为例
# 看一下
# 遇到过
# 大家多多
# 来写
# 有一个
# 其实很简单
# 运行库
# 目录下
# 在我们的
# 目录中
相关文章:
学校为何禁止电信移动建设网站?
在线教育网站制作平台,山西立德教育官网?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
建站之星导航菜单设置与功能模块配置全攻略
北京制作网站的公司,北京铁路集团官方网站?
如何获取上海专业网站定制建站电话?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
大同网页,大同瑞慈医院官网?
如何快速查询域名建站关键信息?
php json中文编码为null的解决办法
上海网站制作开发公司,上海买房比较好的网站有哪些?
开封网站制作公司,网络用语开封是什么意思?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
已有域名和空间,如何快速搭建网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?
网站制作免费,什么网站能看正片电影?
制作网站外包平台,自动化接单网站有哪些?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
如何快速上传自定义模板至建站之星?
如何通过西部建站助手安装IIS服务器?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何选择高效稳定的ISP建站解决方案?
建站之星会员如何解锁更多建站功能?
建站之星24小时客服电话如何获取?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
建站之星如何实现PC+手机+微信网站五合一建站?
如何在阿里云购买域名并搭建网站?
番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
定制建站哪家更专业可靠?推荐榜单揭晓
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
如何用低价快速搭建高质量网站?
网站设计制作企业有哪些,抖音官网主页怎么设置?
山东云建站价格为何差异显著?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
建站之星×万网:智能建站系统+自助建站平台一键生成
建站VPS能否同时实现高效与安全翻墙?
如何在IIS中新建站点并配置端口与物理路径?
湖北网站制作公司有哪些,湖北清能集团官网?
如何选择高效响应式自助建站源码系统?
如何选择CMS系统实现快速建站与SEO优化?
如何通过VPS搭建网站快速盈利?
如何在宝塔面板中修改默认建站目录?
c# 服务器GC和工作站GC的区别和设置
哈尔滨网站建设策划,哈尔滨电工证查询网站?
建站主机SSH密钥生成步骤及常见问题解答?
*请认真填写需求信息,我们会在24小时内与您取得联系。