添加LeakCanary后编译冲突问题

QuibblerQuibbler 2019-11-05 约 2 分钟 1931 次阅读

LeakCanary导致编译冲突问题

坑点:

在比较旧的项目build.gradle文件中添加LeakCanary依赖准备分析内存泄露,可以sync,但是build的时候直接报错不通过:

Program type already present: android.support.v4.app.TaskStackBuilder$SupportParentable

解决办法就是移除引入库中的额外重复依赖:

//    内存泄露检测工具,debug版才有,release版自动移除。不要更新到最新版本有依赖冲突,这个版本没有
    debugApi('com.squareup.leakcanary:leakcanary-android:1.6.2') {
        exclude group: 'com.android.support'
        exclude module: 'support-v4'
    }
    releaseApi('com.squareup.leakcanary:leakcanary-android-no-op:1.6.2') {
        exclude group: 'com.android.support'
        exclude module: 'support-v4'
    }

或者降低到低版本的,没有这个问题:

debugApi 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseApi 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'

技巧:

在代码项目路径下,运行命令检查依赖项:

./gradlew app:dependencies

会检测出依赖关系:

相关推荐

精选
Airbnb开源项目
开源

Airbnb开源项目

Airbnb Engineering & Data ScienceAirflow Use Apache Airflow (incubating) to author workflows as directed acyclic graphs (DAGs) of tasks12,263Airpal Web UI for PrestoDB2,502Aerosolve A machine learning

1.8k
OkHttp线程池和连接池
开源

OkHttp线程池和连接池

OkHttp线程池和连接池了解了OkHttp的网络请求流程以及拦截器实现原理,再关注OkHttp中两个重要的:OkHttp的线程池和连接池。1、OkHttp线程池在OkHttp网络请求流程一文中,我们分析了OkHttp异步和同步请求流程。请求最后都在Dispatcher中分发调度处理,最后被ExecutorService执行。1.1、DispatcherDispatcher中执行任务的执行器是ex

5.2k
优美的开源动效库:Lottie
开源

优美的开源动效库:Lottie

优美的开源动效库:Lottie1、强大的动效LottieLottie是一个适用于Android,iOS,Web和Windows的库,它可以使用Bodymovin解析以json格式导出的Adobe After Effects动画,并在移动设备和Web上原生渲染它们!GitHub:https://github.com/airbnb/lottie-androidLottie官网:http://airbn

4.3k

评论 (1)

评论功能已关闭,仅展示历史评论