需求
在项目中常常有一些对外部类库的引用,而我们的类库文件(eg. xx.jar,xx.so)更新的频率很高,Android Studio是不支持(我目前没找到方法)像eclipse那样进行外部引用的,我们也不可能每次在相关库文件更新的时候去手动替换,这样很容易出错,而且效率极低。不过得益于studio用的是gradle来构建项目,我们可以在gradle上做文章了。
解决方法
通常我们的项目是通过svn,git等工具来控制版本的,我们的项目一般包括服务器端、手机客户端、web端等,所以我们的项目应该是在同一个主目录下,这样就为我们解决问题提供了方案:我们可以用相对路径来定位我们需要的库文件,然后通过gradle,在每次编译的时候将相关文件copy到我们的libs目录。这样我们就能保证每次编译使用的jar包和so库等都是最新的,还免去了手动操作的麻烦。
代码
android {
copy {
//目标文件相对于当前android studio项目的路径
from "../../../../../public/3rd_party/protobuf-2.5.0-modify/java/target/"
//目的路径
into "../grb_sdk_library/libs/"
//声明只拷贝所有jar文件
include '*.jar'
}
}