美文网首页
AndroidStudio library module ref

AndroidStudio library module ref

作者: 咬住青春不放手 | 来源:发表于2018-01-15 19:03 被阅读0次

    这几天在做项目打包 library 的时候遇到一个问题,由于之前一直是将 library module打包成 Jar 包被 app 和其他 library module 引用,所以项目编译和运行都正常工作。但是现在对 sdk library 做了一些改动,在 res/ 目录下新增了一个 xml 文件,这就造成打包出来的 jar 用在项目中编译会出错,找不到对应的 res 文件。网上查阅资料发现打包成 .aar 可以包含class和res资源文件,但后面接连踩了一系列的坑, 所以也就有了本文的开始:

    一. 打包成 .aar 包

    有两种方式: 1.编写task执行打包操作;2.手动在项目中找到aar包并重命名

    1.在编写task执行打包操作: 注:libraryModule为需要引用 .aar包的一个 library module

    (1).在需要打包的 module(该 module应该是一个library) 目录下的build.gradle中实现一个task -> make AAR, 代码如下图:

    task makeAAR

    (2).然后在 AS 的Terminal 或 cmd 命令行执行 $: gradle makeAAR;然后在libraryModule/build/libs/目录下找到对应的  aar包:

    .aar 包输出目录

    (3) 引用.aar 包

    首先将打包出来的 .aar 包拷贝到需要引用的 module name/libs/ 目录下;然后在需要引用的 app module或者是 library module的build.gradle中做如下操作:

    引用 .aar 包

    (4). 如果该 library 还被 app module引用,name还需要在 app module 的build.gradle中加上:

    repositories {

    flatDir {

    dirs'libs'

        }

    }

    (5).完成以上操作后执行 build ->Rebuild Project操作即可。

    2.手动在项目中找到aar包并重命名

    只需要省去以上 1 中的第一步,在第二步中的 libraryModule/build/outputs/aar/  目录下找到对应的 .aar 并重命名将其拷贝到所需module的libs 目录下,再执行 1 中剩下的其他操作。

    相关文章

      网友评论

          本文标题:AndroidStudio library module ref

          本文链接:https://www.haomeiwen.com/subject/rwpdoxtx.html