Android Studio多个module导入AAR库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yutao52shi/article/details/48015125

介绍

有时候由于需要一些自定义之后的开源库,无法使用jCenter里面的官方库,又懒得自己搭建Maven仓库,所以我们想要自己在项目里面直接导入本地的AAR库。

通用方法和问题

网上通用的AAR导入Gradle的方法很简单:

repositories {  
    flatDir {  
        dirs 'libs'  
    }  
}  

dependencies {
    compile name: 'libname', ext: 'aar' 
}

如果我们只有一个APP的情况下,这个方法就足以了,但是如果项目比较复杂,有多个Module都需要这个相同的aar库,问题就来了。下面的项目中,我们有一个Application:app,两个module:framework,custwidgets。并且两个module都需要依赖Fresco的aar库。我们把aar放到framework里面,app和custwidgets都依赖于framework。现在编译会报错:
这里写图片描述
原因是编译两个module依赖了framework,但是在另外两个目录使用无法找到libs这个目录(由于写的相对路径,对于app,搜索的目录就是app/libs/),把AAR引进来。目前Gradle引入AAR还比较弱,无法像jar一样直接就依赖进去了。

最终方案

由于不想每一个module都放一份aar。所以,我们只能在flatDir下功夫。方案1是使用绝对路径,这样很不灵活,无法根本性的解决问题,后来突然灵机一动,我目录使用”../framework/libs”不就可以找到这个路径了么:)。试了一下,果真work了。附上示例工程:http://download.csdn.net/detail/yutao52shi/9052009。供给大家参考一下。
现在开始Have fun with AAR吧:)

猜你喜欢

转载自blog.csdn.net/yutao52shi/article/details/48015125