关于AndroidStudio引用外部库时的问题(gradle构建机理)

今天看到一个检测内存泄漏的工具LeakCanary(关于LeakCanary的用法有中文介绍), 于是想写个demo试试.

结果, 遇到了一个问题LeakCanary类找不到. 我下载了一个Demo, 我的配置文件和这个Demo一模一样!!

我无论我怎么同步build.gradle文件, 都没有效果.


我的module下的build.gradle配置文件的片段如下: 



点击右上角的"Sync Now"之后, 发现"External Libraries"列表中有了两个与leakcanary相关的引用, 这两个引用分别是

leakcanary-analyzer-1.3.1 和 leakcanary-wacther-1.3.1

这两个外部library中都没有LeakCanary类, 于是在jcenter上找了一下.

发现上面两个是jar包, 有一leakcanary-android-1.3.1, 但是aar包.

我又点击了下载下来的demo中的LeakCanary类, 跳转到一样一个地方: 



原来引用的外部aar包, 都会解压到<project-path>/build/intermediates/exploded-aar目录下面!!


我在网上下的demo为什么可以应用aar包里面的class, 我我自己创建的不可以呢??

我猜可能是aar包没有解压(aar包其实就是zip包)

经过一番摸索, module上右键->"Make Module 'Module-Name' ",  终于可以引用LeakCanary类了!!! (aar包已经解压到build下...)



有点啰嗦, 主要是备忘一下

总结一下这番折腾: 

1. module下面的build.gradle中的 compile 'library', 可能引用的是jar包, 也可能引用的是aar包

2. 如果不能生成R文件(也经常遇到这个问题, 特别是冲其他项目中copy res目录是, R文件就不能生成) 

或者 不能引用外部包中的类, 重新make你的module  (在你的module上右键->Make Module 'Module-Name')

3. 查看外部库是否引用成功, 可以在两个地方看:  "External Libraries" (引用成功后, jar和aar包都显示在这里面, 你引用的library所依赖的库也会在这里显示)    和 

"<project_dir>/build/intermediates/exploded-aar" (针对aar包) 

切到Project模式: 






如有错误, 欢迎指正大笑






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值