See You Again

打包工具迁移到gradle

之前用eclipse手动打android包,现在想在服务器上自动打包。配置了gradle脚本后,虽然打出了apk包,但是一打开就闪退。
解压 apk 文件,发现没有相关的 so,而用 eclipse 是有这些文件的。后来才发现,原来 eclipse 会帮助我们把 libs 目录下的so文件自动打包进apk的 lib 目录,而gradle默认处理的目录是 jniLibs,不过也可以通过配置兼容:

  1. sourceSets {
  2. main {
  3. jniLibs.srcDirs = ['libs']
  4. }
  5. }

网上找到一个 SO 目录的解释,不过为啥 gradle 要用一个新名字 jniLibs 呢?

SO库都是APP运行时加载的,也就是说APP只有在运行的时候才知道SO库文件的存在,这就无法通过静态代码检查或者在编译APP时检查SO库文件是否正常。所以,Android开发对SO库的存放路径有严格的要求。

2016-08-27 喜欢

Copyright © 2015-2018 转载请注明出处

回到顶部 ↑