ANDROID - 打包和引用本地的AAR
打包方法:
- 打开Gradle面板 Gradle Projects;
- 选择Library对应的Gradle Task,比如:":testsdk";
- 依次 Tasks > build > assemble (打包release/debug aar) / assembleDebug/ assembleRelease
引用方法:
把 AAR 放入 libs
在 build.gradle 添加 repositories{
flatDir{dirs 'libs'}}
在 build.gradle 添加 dependencies{compile '包名:类库名:版本号@aar'}(dependencies 设置时需要放在 compile fileTree 的上面,否则无法识别)
优点:
- 自己类库可以自己维护自己内部的AAR引用;
- 能像维护libs里的jar类库一样简单;
- dependencies 设置方式和在线解析引用的方式一样;
缺点×:
- dependencies 设置时需要放在 compile fileTree 的上面,否则无法识别.
- 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名称?
- 解压AAR包,看AndroidManifest.xml里的 package="com.alvin.testsdk"
- 对应的就是名称就是 "包名:类库名",比如:com.alvin:testsdk
- 然后必须设置AAR文件名为 "类库名-版本号.aar",比如:testsdk-0.0.1.aar
- 最后拼接正确的版本号就是 com.alvin:testsdk:0.0.1
- 最后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的更多相关文章
- Android模块化编程之引用本地的aar
随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好.针对Android开发最常见的就是Android Libra ...
- Android 模块化编程之引用本地的aar
转: http://www.stormzhang.com/android/2015/03/01/android-reference-local-aar/ 随着项目越来越多,代码的复用就变得异常重要,这 ...
- Android Studio 打包及引用 aar
Android Studio 打包及引用 aar 1. 简述 在比较大的 Android 项目的开发中,我们经常会遇到工程.jar 包等等之间相互引用的方式.一般我们通过在 gradle 文件中配置依 ...
- Android Gradle 引用本地 AAR 的几种方式
折衷方案: 1.方式2 - 不完美解决办法2 2.再使用"自定义Gradle代码"来减轻重复设置的问题. 自定义Gradle代码如下: repositories { flatDir ...
- Android studio 中引用jar的其实是Maven?(二)
上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...
- Android打包的那些事
使用gradle打包apk已经成为当前主流趋势,我也在这个过程中经历了各种需求,并不断结合gradle新的支持,一一改进.在此,把这些相关的东西记录,做一总结. 1. 替换AndroidManifes ...
- android打包apk时混淆遇到的问题
android打包apk的时候一般会选择混淆,而在eclipse中常使用的是proguard来混淆.有很多时候引用了第三方包的时候会导致打包不成功,或者打包成功不能运行的情况. 首先看看正常的prog ...
- Xamarin android使用Sqlite做本地存储数据库
android使用Sqlite做本地存储非常常见(打个比方就像是浏览器要做本地存储使用LocalStorage,貌似不是很恰当,大概就是这个意思). SQLite 是一个软件库,实现了自给自足的.无服 ...
- .Net Core 项目引用本地类库方式(二)
上篇文章有详细的介绍.Net Core 项目中引用本地类库通过打包,然后Nugety引用方式,这里再介绍一种引用包的方式
随机推荐
- Gamma阶段第九次scrum meeting
每日任务内容 队员 昨日完成任务 明日要完成的任务 张圆宁 #91 用户体验与优化https://github.com/rRetr0Git/rateMyCourse/issues/91(持续完成) # ...
- html中利用flex容器书写的布局样式
首先页面基本样式见下图: 如有兴趣可以打开https://migloo.gitee.io/front 或者 https://www.igloo.xin/front 进行查看
- 【操作系统之六】Linux常用命令之less
一.概念less 工具也是对文件或其它输出进行分页显示的工具,是linux正统查看文件内容的工具,功能极其强大.less 的用法比起 more .tail更加的有弹性.在 more 的时候,我们并没有 ...
- jdk 1.7新特性
JDK1.7新特性 1,switch中可以使用字串了String s = "test"; switch (s) { case "test" : ...
- DB2 Error : SQLCODE=-802,SQLSTATE=22003 异常的原因
使用DB2时,报错为 DB2 Error : SQLCODE=-802,SQLSTATE=22003 主要原因: 是我们sql语句使用某个字段*86400后结果非常大,导致无法返回结果:因为某个字段* ...
- Sitecore 8.2 数据库权限设置
在我的一个项目中,客户决定改变基础设施.在这个过程中,我得到了一些新的东西需要学习.在本文中,我将分享有关Sitecore数据库权限的经验. 在将数据库从一个服务器移动到另一个服务器时,您需要检查提供 ...
- Django ORM 数据库增删改查
Django ORM 数据库增删改查 增 # 创建.增加数据(推荐) models.UserInfo.objects.create(username=') # 创建.增加数据 dic = {'} mo ...
- AGC038
Contest Page 开题开错翻车场.jpg A sol $A > \frac{W}{2}$或者$B > \frac{H}{2}$的时候无解,否则构造方法长下面这样 #include& ...
- 踏入OpenGL大门 —— VS2015开发环境配置 (详细图文)
转自: https://www.jianshu.com/p/68c314fa9fea?from=groupmessage 眼睛熊 ---------------- 本文 ------------- ...
- [摘录]flutter打包后无法访问接口
打开文件{{flutterPorject}}\android\app\src\main\AndroidManifest.xml这个文件增加权限信息: <uses-permission andro ...