一、前言
最近打算将开发中遇到的问题都总结一下,一是自己可以随时回顾,二是通过不断积累形成一个Bug集,为遇到同样错误的老铁们提供一个解决思路,当然这个积累过程肯定是漫长的,不过我会一直坚持补充的。
二、错误集
在gradle中依赖leakcanary时报错Gradle DSL method not found:’debugImplementation()’
(1)问题描述
因为要使用LeakCanary来监测一下内存泄漏的问题,所以首先在build.gradle文件中添加了相关依赖:
dependencies {
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
}
随后Build=>>Rebuild Project后报错:
Gradle DSL method not found:'debugImplementation()'
具体错误信息如下:
(2)错误分析
由于当前所使用的Android Studio版本2.3.3太低,并不支持debugImplementation和releaseImplementation的依赖方式,在Android Studio3.0之后,增加了很多新功能,例如新增了对Kotlin的支持、支持使用一些java8的语言新特性等等,同时其也在一些地方做了改变,gradle编译版本升级成gradle4.0就是一个方面,感兴趣的可以去搜一下Android Studio3.0的新功能。
(3)解决方案
既然我们知道了问题所产生的原因,当然也就知道了解决办法,第一种方法就是更新当前Android Studio版本到3.0.0,但升级后可能会对于老项目产生无法预料的诡异问题,费时很长,但以后可以一劳永逸;第二种方法就是不使用debugImplementation这种依赖方式,使用2.x版本的debugCompile代替:
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'