android studio怎么使用so文件

 我来答
约定20125
2016-12-20 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2884万
展开全部

  首先,在我们的Module的根目录中建立libs目录,将jpush集成SDK中的so文件分别拷入,截图如下:


  然后就是编写我们的build.gradle文件。

  关于so文件引入的配置很简单,代码配置如下:

  [html] view plain copy print?在CODE上查看代码片派生到我的代码片

  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目录中。

em...2@sina.com
2016-12-20
知道答主
回答量:8
采纳率:50%
帮助的人:2.4万
展开全部
我最近刚刚好把工作环境从eclipse切换到android studio上,关于你标题上的问题,我刚好遇到过,特来回答,当然我也是网上搜索到的答案:
一般 Android 项目从 Eclipse 导入至 Android Studio(以下简称AS) 后,会出现各种问题,最主要的就是 “gradle” 目前为止还不支持 .so 库文件打包入 apk 。
也就是说,如果你用的第三方库中包含 .so 文件 (一般是 libs\armeabi\ xxx.so ) , 那么只要在代码中出现 “System.loadLibrary( "xxx" ) ; 等代码出现,一定会在这里抛出异常 UnsatisfiedLinkError 。
解决方案如下: 根据我 Google 了2天的结果,一个比较满意且所有出现这个问题的人都可行的方案是:
1) 在硬盘任意位置建立空文件夹 "lib" (注意名字是 "lib" 而不是 "libs" )
2) 把原来的 libs 目录下的 armeabi 文件夹拷贝至 刚建立的 lib 目录下. (armeabi文件夹中的.so文件也会被一并拷入)
3) 将刚建立的 "lib" 目录打包压缩成 .zip 文件, 同时改名为 “armeabi.jar"
4) 将 armeabi.jar 放入原来的 libs 目录下 (和其他第三方jar包放在一起)
经过这4步之后,只需要再重新更新下AS的第三方库,就OK了 .
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式