Android Studio多个module导入AAR库

介绍

有时候由于需要一些自定义之后的开源库,无法使用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吧:)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 05:54:56

Android Studio多个module导入AAR库的相关文章

Android 导入 aar 库文件

1. 在需要导入 aar 的 module 目录下创建一个名叫 "aars" 的目录,并把 aar 文件复制到这里. 2. 在项目的 build.gradle 文件里添加 allprojects { repositories { jcenter() flatDir { dirs 'aars' } } } 3. 在 module 的 build.gradle 文件里添加 compile(name: 'lib-name', ext: 'aar')

Android Studio三种方式导入外部资源 以及 报错处理

android studio提供了三种方式导入外部资源: 1. Library dependency – 在线添加.需联网下载 2. File dependency – 从本地添加一些jar包(要先将jar包拷贝到项目的libs文件夹下) 3. Module dependency – 从本地添加带有源码的库工程(要先 import Moudle 将库工程导入项目中) 其中第三种方式导入会报一些错误,这里以github上的开源框架android-async-http 为例,给出一种导入的步骤并尝试

Android Studio 2.2.2导入Eclipse中创建的项目

最近随视频教程学习Android,原本都是用Adt写Android程序,中途教程换成了Android Studio,于是我自己下了android studio 2.2.2安装好,并下载好sdk,也跟着更换开发环境. 但教程并未讲解如何将旧有的Eclipse项目导入到Android Studio(以下简称as)中. 自己花了一整天的时间,在网上找相关文章,发现都不能完全解决问题,可能是因为新版本的as相关文章较少吧.所以在费了好一番周折自己一步步试着导入,初步搞定后,记录一下导入时遇见的问题及解决

Android Studio各种情况下导入library的教程(图解)

Android Studio是谷歌力推的开发工具,导入library还是跟传统的Eclipse有很大区别的. 一.jar包 第一步,project目录下的libs,把jar往里面拷贝.如下图: 第二步,切换到Android目录,打开build.gradle(Module:app).如下图: 然后,程序需要编译到代码,需要 手动添加 或 图形界面设置添加 . 手动添加: 一般有这么一段东西,加一句让程序编译你的刚才拷贝过来的jar. 假如我导的是gson-1.6.jar加这么一句,上图就是完整代码

Android Studio引用Library与导入jar

在Android项目开发过程中,Android Studio是一款非常强大的开发工具.到底有多强大,用了你就知道了. 本文我将介绍Studio引用Library开源项目与导入jar方法. 一.引用Library 1:选择你的项目,点击导航栏File -->New -->Import Module... 根据提示Import你的Library即可 此时展开你的项目即可发现你导入的Library(我导入的是IOS_Dialog_Library) 到这工作还未结束. 2:再次选择你的项目,点击Fil

Android Studio如何import module(针对非gradle)

同样的,非gradle编译的工程和gradle编译的在import module上同样有一些区别.包括操作上,显示上的一些区别,以前的文章中,只要没有标注"非gradle"字样的,都是针对使用gradle来build的. 说到这,估计很多人会问,怎样的算是使用gradle来进行build的,怎样的不算,区别很简单,你只要看到工程根目录下,或者module目录下有没有build.gradle这个文件,有就是使用gradle来build,没有就是非gradle.(当然不只这一个区别,还有一

[Android Studio] Android Studio如何删除module(转载)

转载地址:http://blog.csdn.net/hyr83960944/article/details/37519299 当你想在Android Studio中删除某个module时,大家习惯性的做法都是选中要删除的module,右键去找delete.但是 在Android Studio中你选中module,右键会发现没有delete,如图: 为什么会没有delete按钮,不科学啊,难道是Android Studio的bug或者设计组考虑不周.其实这边没有delete按钮主要原因是因为And

在Android Studio中删除module

当你想在Android Studio中删除某个module时,大家习惯性的做法都是选中要删除的module,右键去找delete.但是 在Android Studio中你选中module,右键会发现没有delete,如图: 为什么会没有delete按钮,不科学啊,难道是Android Studio的bug或者设计组考虑不周.其实这边没有delete按钮主要原因是因为Android Studio对module做了一个保护机制,就是一个module你是不能随意删除的,要删除你必须得先把module从

【Android Studio快捷键】之导入相应包声明(import packages)

From:http://blog.csdn.net/hyr83960944/article/details/38438355 可能import 单个声明的快捷键大家都很容易找到,Alt+Enter.但是如果我要一次性import文件中所有的声明,这个快捷键是什么呢,找啊找的,就是没找到,以前在Eclipse是Ctrl+1,但是做完Keymap后不起作用了.其实我也没找到,我估计是没有这个快捷键了,当然如果真有这个快捷键,找到了,我会更新下.为什么我猜是没有这个快捷键了呢,因为Android St