Android中本地库aar包依赖

过时了!现在东西变化太快了,在4.1.2版本的Android Studio上,这种方式已经不支持了。新版上本地引入aar或jar文件的方式,请参考Create an Android library

1. 背景

前一段时间我在开发中需要用到第三方的控件Android-PickerView,我在build.gradle中的依赖是这么写的:

compile 'com.contrarywind:Android-PickerView:4.1.3'

可以看出这是一个网络库依赖。由于本地配置了网络代理和国内镜像库,除了第一次需要下载慢一些,编译运行没有任何问题。不过在我将代码提交到svn上的时候,jenkins标红了…
在有网情况下,使用网络库依赖没问题,但我们的Jenkins服务器编译要求离线,所使用的gradle版本也相对较低,因此只能就不能使用网络库依赖了。
由于上述依赖并不是纯Java代码,还包括了资源文件,使用aar包依赖比较方便。

2. 使用aar包依赖

较高版本gradle的支持更简单的aar引用方式,不过低版本的gradle却并不能兼容。网上的文章多数都是较高版本gradle使用aar依赖的方式,不过我们的svn上使用的gradle版本较低,这里将描述高低两种版本gradle使用aar依赖的方式。

2.1较高版本gradle中引用aar依赖

这里较高版本gradle使用是gradle 4.1,对应Android Studio gradle 3.0.1插件。高版本gradle上使用aar本地依赖很简单,基本上与jar的依赖方式一致。
1)将所需要的aar包copy到应用所在module的libs目录下
2)在应用所在module里的build.gradle里添加:

compile fileTree(dir: 'libs', include: ['*.aar'])

或者如果同时有jar依赖的话,可以写成:

compile fileTree(dir: 'libs', include: ['*.jar','*.aar'])

2.2较低版本gradle中引用aar依赖

这里较低版本使用的gradle版本是2.2.1,相应的gradle插件版本为1.2.3。使用方式其实也不麻烦。
1)将所需要的aar包copy到应用所在module的libs目录下
2)在应用所在module里的build.gradle添加依赖(以添加的文件pickerview.aar,wheelview.aar为例):

 compile(name: 'pickerview', ext: 'aar')
 compile(name: 'wheelview', ext: 'aar')

然后在在build.gradle最外层添加

repositories {
    flatDir {
        dirs 'libs' //this way we can find the .aar file in libs folder
    }
}

注意低版本gradle 支持

compile fileTree(dir: 'libs', include: ['*.aar'])

这种依赖方式。
高版本gradle可以兼容低版本的这种使用方式。

3. 从网络库依赖中获取aar包

aar包可以很方便的进行离线库依赖。而对于module依赖(Eclipse的项目依赖),也可以将其打包成aar以简化项目的结构。但是很多很多开源库的文档基本都是告诉你添加一句compile 语句进行依赖,例如

compile 'com.contrarywind:Android-PickerView:4.1.4'

搜索下载aar包,有些网络环境下却并不容易找到合适的aar包下载。如何比较容易的获取到需要的aar包呢?以下以PickerView为例描述。

3.1 添加网络库依赖

根据开源库文档,在module的build.gradle中添加网络库依赖

compile 'com.contrarywind:Android-PickerView:4.1.3'
  • 点击编译,编译时候打开网络,必要时添加国内镜像库。编译好后aar文件就已经在本地缓存里有了。

    3.2 从缓存中复制aar文件

    上述编译好后将Android Studio切换到Project视图模式。
  • 展开External Libraries,可以在里面找到com.contrarywind:Android-PickerView-4.1.3和com.contrarywind:wheelview-4.0.5
  • 右键选择Library Properties可以找到依赖包的缓存目录
  • 复制路径后并从文件管理进入到该文件所在目录的父级目录。这里要注意的一点是我们要使用的不是里面罗列的jar文件。
  • 在该目录地下找到某个目录中所包含的aar文件,我这里是
Android-PickerView-4.1.3.aar

将该文件copy出来备用
以同样的方式获取并copy出

wheelview-4.0.5.aar

这两个aar文件就可以以作为aar依赖离线引用了。
注意:以上使用的是Android Studio3.0.1进行的操作。如果用的Android Studio版本较低,右键可能没有Library Properties这一选项。这种情况下,可以在setting中找到缓存根目录,如

C:\Users\user\.gradle\

进入到缓存根目录后,进入到

C:\Users\user\.gradle\caches\modules-2\files-2.1\

通过添加时间等方式,找到刚刚从网上下载的aar文件根目录。
比如我们这个案例就在com.contrarywind目录下,很容易可以找到所需的两个aar文件。

对于获取到的aar文件,修改文件名也可以使用。

4. 总结

  • 搜索工具使用的优先级会影响效率。刚开始使用搜狗搜索到许多排名靠前的文章对我有较大误导,最后还是在stackoverflow上找到了答案。
Android开发,如果在打aar时遇到远程依赖打不进去的情况,可能是由于以下几个原因导致的: 1. 依赖版本不兼容:可能是依赖的版本与Android项目其他组件的版本不兼容。在使用远程依赖时,需要确保依赖的版本号与项目其他组件的版本号相匹配,否则可能会导致打aar时无法成功引入依赖。 2. 依赖声明错误:在使用远程依赖时,需要在项目的build.gradle文件正确声明依赖。如果依赖声明错误,编译时会出现错误,无法成功引入依赖。 3. 依赖缺失或地址错误:如果在打aar时遇到依赖打不进去的情况,可能是由于依赖在远程仓不存在或地址错误导致的。需要确保依赖在远程仓可用,并且使用正确的地址进行引入。 解决这个问题的方法可以尝试以下几个步骤: 1. 检查依赖版本:确保依赖的版本与项目其他组件的版本兼容,并且使用正确的版本号进行引入。 2. 核对依赖声明:在项目的build.gradle文件检查依赖的声明,确保格式正确、不存在错误,并且没有其他冲突的依赖项。 3. 检查依赖地址:确认依赖在远程仓存在,并且使用正确的地址进行引入。可以尝试手动下载依赖并将其放置在项目的libs目录下,然后在build.gradle文件引入本地依赖。 如果仍然无法解决问题,可以尝试联系依赖的维护者或者查看相关文档和社区进行更详细的咨询和支持。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值