问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android studio怎么添加.so文件

发布网友 发布时间:2022-04-24 11:06

我来回答

2个回答

热心网友 时间:2023-10-10 19:06

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

其实很简单。这里以集成JPUSH为例,看一下so文件如何引入到编译环境,最终到JNI直接可以调用该so文件。

首先,在我们的Mole的根目录中建立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')
}

热心网友 时间:2023-10-10 19:07

Android Studio中jar包放在libs目录下,jni编译的so库存放在libs目录下的armeabi目录中。
导入步骤:
1. 右键app目录,find path,即打开app目录。
2. 在libs目录下新建文件夹,名字为 armeabi,注意名字不能改。
3. 将jar复制到libs目录下。
4.将.so库文件复制到armeabi目录下即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美克拉营销系统,谈谈一般美容院顾客到店率低的原因 ...怎样找下家,怎样使一家美容院有客流,有竞争力!请教各位大侠!_百度... 美容院怎么引流,有没有最新美容院拓客的方法推荐? 放置奇兵 放置奇兵光暗英雄排行是什么样的? 放置奇兵 放置奇兵英雄强度排行什么样? 放置奇兵 放置奇兵时空英雄哪个好? 淘宝直播能挂淘客链接吗?淘宝直播万能链接怎么做? 关于魔兽世界法师的一点小问题 勤哲可视化快速开发平台,觉得怎么样? 风机的主要结构是什么意思 安卓apk解压后得到的.so文件能直接放项目里面调用里面的方法吗? mupdf.so 库怎么用?之前没做过这方面的东西 有关跨平台模块化编程,DLL,SO文件等问题,知多知少欢迎进来~ 换了新显卡之后屏幕轻微抖动,出现波纹! 三国群英传7 script.so文件 怎样动态调用.so文件中的类方法 这些so文件是在一个手机游戏软件提取出来的,怎么转换成MP3?……为什么会变成酷狗的图标? linux环境java如何调用so文件 安卓手机如何打开.so文件?安卓手机有什么软件或者是方法可以打开.so文件的吗?不要用电脑,很麻烦 linux 中怎么看.so 文件 Linux c++开发.so文件的使用 Android studio中导入了.so文件由于是问号文件点了text打开格式,然后出现了乱码, android studio 怎么打开so文件 .so文件怎么打开啊?急急急 晚上喝姜汤解酒科学吗 姜能解酒吗 哥哥为了生意经常喝醉酒,姜汤解酒吗?什么方法效果好 有益身体健康 喝姜汤真的能解酒吗 姜泡在酒里能解酒吗? 喝姜茶可以解酒吗? 有些软件安装后移到system/app下为什么会出错及解决方 如何动态加载android的so文件,如何压缩apk尺寸 凉皮酸甜口怎么调? 怎么在家做酸甜的凉皮 炒凉皮酸甜辣怎么做 凉皮的做法是什么? 电子发票是短信形式怎么打开? 用自己的手机代领导开手机电子发票怎样操作 短信上的发票怎么打印 电子发票如何使用? 手机收到的短信电子发票要怎么做? 12368短信发送的电子票据怎么打开? 手机充话费,电子发票怎么开 电子发票有什么用?怎么用? 我原来申请的发票提醒短信删除了,怎么办? 手机qq空间访客记录怎么删除 win7经常出现“显卡驱动未响应,并且已成功恢复”的字样 微信转账时候显示该银行卡已失效怎么回事 微信支付出现“银行系统异常请稍后再试或用其他银行卡”是怎么回事? 微信转帐显示银行卡失效是什么意思