打包方法:

  1. 打开Gradle面板 Gradle Projects;
  2. 选择Library对应的Gradle Task,比如:":testsdk";
  3. 依次 Tasks > build > assemble (打包release/debug aar) / assembleDebug/ assembleRelease

 

引用方法:

  1. 把 AAR 放入 libs
  2. 在 build.gradle 添加 repositories{flatDir{dirs 'libs'}}
  3. 在 build.gradle 添加 dependencies{compile '包名:类库名:版本号@aar'}(dependencies 设置时需要放在 compile fileTree 的上面,否则无法识别)

优点:

    1. 自己类库可以自己维护自己内部的AAR引用;
    2. 能像维护libs里的jar类库一样简单;
    3. dependencies 设置方式和在线解析引用的方式一样;

缺点×:

    1. dependencies 设置时需要放在 compile fileTree 的上面,否则无法识别.
    2. dependencies 设置的名字 和 在线解析引用的方式不一样.
    • 如在线解析方式:compile 'com.android.support:appcompat-v7:25.3.1.+@aar'
    • 如在线解析方式:compile 'com.android.support:appcompat-v7:25.3.1'
    • 本地AAR方式:compile 'com.alvin:testsdk:0.0.1@aar'

如何设置正确的本地AAR名称?

  1. 解压AAR包,看AndroidManifest.xml里的 package="com.alvin.testsdk"
  2. 对应的就是名称就是 "包名:类库名",比如:com.alvin:testsdk
  3. 然后必须设置AAR文件名为 "类库名-版本号.aar",比如:testsdk-0.0.1.aar
  4. 最后拼接正确的版本号就是 com.alvin:testsdk:0.0.1
  5. 最后compile为 compile 'com.alvin:testsdk:0.0.1@aar'

(debug build 使用 test-debug.aar, release build 使用 test-release.aar,重命名为testsdk-0.0.1.aar)

ANDROID - 打包和引用本地的AAR的更多相关文章

  1. Android模块化编程之引用本地的aar

    随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好.针对Android开发最常见的就是Android Libra ...

  2. Android 模块化编程之引用本地的aar

    转: http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/ 随着项目越来越多,代码的复用就变得异常重要,这 ...

  3. Android Studio 打包及引用 aar

    Android Studio 打包及引用 aar 1. 简述 在比较大的 Android 项目的开发中,我们经常会遇到工程.jar 包等等之间相互引用的方式.一般我们通过在 gradle 文件中配置依 ...

  4. Android Gradle 引用本地 AAR 的几种方式

    折衷方案: 1.方式2 - 不完美解决办法2 2.再使用"自定义Gradle代码"来减轻重复设置的问题. 自定义Gradle代码如下: repositories { flatDir ...

  5. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  6. Android打包的那些事

    使用gradle打包apk已经成为当前主流趋势,我也在这个过程中经历了各种需求,并不断结合gradle新的支持,一一改进.在此,把这些相关的东西记录,做一总结. 1. 替换AndroidManifes ...

  7. android打包apk时混淆遇到的问题

    android打包apk的时候一般会选择混淆,而在eclipse中常使用的是proguard来混淆.有很多时候引用了第三方包的时候会导致打包不成功,或者打包成功不能运行的情况. 首先看看正常的prog ...

  8. Xamarin android使用Sqlite做本地存储数据库

    android使用Sqlite做本地存储非常常见(打个比方就像是浏览器要做本地存储使用LocalStorage,貌似不是很恰当,大概就是这个意思). SQLite 是一个软件库,实现了自给自足的.无服 ...

  9. .Net Core 项目引用本地类库方式(二)

    上篇文章有详细的介绍.Net Core 项目中引用本地类库通过打包,然后Nugety引用方式,这里再介绍一种引用包的方式

随机推荐

  1. Gamma阶段第九次scrum meeting

    每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91(持续完成) # ...

  2. html中利用flex容器书写的布局样式

    首先页面基本样式见下图: 如有兴趣可以打开https://migloo.gitee.io/front 或者 https://www.igloo.xin/front 进行查看

  3. 【操作系统之六】Linux常用命令之less

    一.概念less 工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有 ...

  4. jdk 1.7新特性

    JDK1.7新特性 1,switch中可以使用字串了String s = "test";   switch (s) {   case "test" :      ...

  5. DB2 Error : SQLCODE=-802,SQLSTATE=22003 异常的原因

    使用DB2时,报错为 DB2 Error : SQLCODE=-802,SQLSTATE=22003 主要原因: 是我们sql语句使用某个字段*86400后结果非常大,导致无法返回结果:因为某个字段* ...

  6. Sitecore 8.2 数据库权限设置

    在我的一个项目中,客户决定改变基础设施.在这个过程中,我得到了一些新的东西需要学习.在本文中,我将分享有关Sitecore数据库权限的经验. 在将数据库从一个服务器移动到另一个服务器时,您需要检查提供 ...

  7. Django ORM 数据库增删改查

    Django ORM 数据库增删改查 增 # 创建.增加数据(推荐) models.UserInfo.objects.create(username=') # 创建.增加数据 dic = {'} mo ...

  8. AGC038

    Contest Page 开题开错翻车场.jpg A sol $A > \frac{W}{2}$或者$B > \frac{H}{2}$的时候无解,否则构造方法长下面这样 #include& ...

  9. 踏入OpenGL大门 —— VS2015开发环境配置 (详细图文)

    转自: https://www.jianshu.com/p/68c314fa9fea?from=groupmessage   眼睛熊 ---------------- 本文 ------------- ...

  10. [摘录]flutter打包后无法访问接口

    打开文件{{flutterPorject}}\android\app\src\main\AndroidManifest.xml这个文件增加权限信息: <uses-permission andro ...