1. 前言
最近遇到一个奇怪的问题。因为第三方的SDK要更新,是一个aar包,所以我就跟以往一样,直接复制粘贴替换掉,然后Synchronize(快捷键:Ctrl+Alt+Y) → Clean Project → Rebuild Project。可是我发现,新包的API我调用不了,Android Studio提示没有这个方法。然后我就重新按照上面的流程再走一遍,还是不行。尝试了很多次,依旧不行。查了资料,说是可能是缓存的问题,按照推荐的方法尝试了一下就可以了。下面我就详细介绍一下解决方案。
2. 解决方案
1)复制新的aar包,替换掉旧的aar包
2)在ExternalLibrary中找出对应的aar包,右键选择Analyze → Code Cleanup
3)清除Android的依赖缓存,删除C盘用户目录下的 .android\build-cache 中的所有文件和 .gradle\caches\modules-2\files-2.1 下对应的文件(文件名和aar包的名字一样)
4)最后再做几个操作:Synchronize(快捷键:Ctrl+Alt+Y) → Clean Project → Rebuild Project
5)如果还是不行,可以把 1)至 4)再试一次,一般一次就可以了
6)如果上面的几个步骤还是不行的话,可以考虑在app主模块中的build.gradle文件中加上
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
有可能是第三方的SDK是在Java 7环境下编译打包的,而我们自己的开发环境不是Java 7,这种情况就有可能造成新的aar包无法编译成功,新的API自然无法拿到。
3. 补充
如果上面的方案解决不了,而你又不在意aar包的名字或者有权利去修改aar包的名字,那你可以试试修改aar包的名字。这样操作基本上是可以加载到新的aar的了。
如果想进一步交流和学习的同学,可以加一下QQ群哦!