Android Studio中怎么引用AAR包 以及 引用时出现的问题 (Error:duplicate files during packaging of APK.......)

网上有许多关于在Android Studio中引用aar包的资料, 怎么引用aar其实非常简单. 

比如我要在项目中使用appcompat-v7兼容包,  在/module/build.gradle文件中的dependencies中添加下面语句即可: 

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar','*.aar']) 
    compile 'com.android.support:appcompat-v7:22.0.0'
}

但在实际应用中我却苦苦折腾了一番大哭, 当然并不是上面说的方法有问题. 

下面就来看看出问题的地方已经怎么解决该问题: 


android的兼容包一般都在/ANDROID_HOME/extras/android/m2repository/com/android/support 目录下面 (我说的是aar包), 如图: 



选择appcompat-v7目录进入, 选择具体版本, 就可以找到aar包了 , 更新SDK的时候记得勾选"Android Support Repository", 否则就找不到你要的aar包了



将aar包copy到module的libs目录下面, 修改module下面的build.gradle文件中的dependencies, 如下: 

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar','*.aar']) 
    compile 'com.android.support:appcompat-v7:22.0.0'
}

编译一下, 结果如下疑问



根据提示修改build.gradle文件, 在android {} 中添加: 

 packagingOptions {
   exclude 'AndroidManifest.xml'
 }

再编译, 结果又出现了讨厌的"Error:duplicate files during packaging of APK......", 只不过是另一个文件的duplicate,

接着根据提示再修改build.gradle文件, 再编译,还是出现duplicate................修改, 编译, 再修改,再编译.........啊啊啊啊啊啊啊啊啊.....抓狂抓狂

陷入死循环了!! 我试了一下"exclude 'res/drawable-ldrtl-xhdpi/*'" 也不行, 咋还不支持正则捏!!


其实aar包就是一个zip格式的文件, 我将aar包的后缀改成zip, 让后解压, 其目录如下: 



看到了吧, 混入了间谍啊, 把它们驱逐出境 !! 再看看res目录下面有些什么



其实drawable-ldrtl-xxxxxxx, 一般都不会用到, 删掉就好了, 清理干净后, 重新压缩成zip包, 更改后缀名为aar, 再copy到libs下,  编译, ok !!! 大笑


关于怎么在android studio中引用aar,请移步: 这里!!

Android Studio中文网


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值