Multiple dex files define解决记录

引用多个library时经常会遇到Multiple dex files define错误

Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Landroid/arch
/core/util/Function;

此时可用以下gradle命令来查看工程的引用树,找出冲突的引用库后exclude之

cd app
..\gradlew -q dependencies

最常见的是support库多次定义,经检查本文是由于引入RxLifecycle导致android.arch.lifecycle.runtime库重复引用问题

compile 'io.reactivex.rxjava2:rxjava:2.2.0'

compile('com.github.tbruyelle:rxpermissions:0.10.2', {
    exclude group: 'io.reactivex.rxjava2', module: 'rxjava'
})

compile('com.trello.rxlifecycle2:rxlifecycle:2.2.2', {
    exclude group: 'io.reactivex.rxjava2', module: 'rxjava'
    exclude group: 'android.arch.lifecycle', module: 'runtime'
})
compile('com.trello.rxlifecycle2:rxlifecycle-android-lifecycle:2.2.2', {
    exclude group: 'io.reactivex.rxjava2', module: 'rxjava'
    exclude group: 'android.arch.lifecycle', module: 'runtime'
})
compile('com.trello.rxlifecycle2:rxlifecycle-android:2.2.2', {
    exclude group: 'io.reactivex.rxjava2', module: 'rxjava'
    exclude group: 'android.arch.lifecycle', module: 'runtime'
})
compile('com.trello.rxlifecycle2:rxlifecycle-components:2.2.2', {
    exclude group: 'io.reactivex.rxjava2', module: 'rxjava'
    exclude group: 'android.arch.lifecycle', module: 'runtime'
})
上一篇 解决OKHttp报java.lang.IllegalStateException closed
下一篇 Android EditText添加android:imeOptions="actionSearch"设置弹出的键盘中带有搜索按钮
目录
文章列表
1 Prometheus + Grafana 监控 Spring Cloud 应用
Prometheus + Grafana 监控 Spring Cloud 应用
2
Swift - 自定义函数规则说明
Swift - 自定义函数规则说明
3
PHP实现图片等比例缩略图
PHP实现图片等比例缩略图
4
Spring Boot集成RocketMQ详解
Spring Boot集成RocketMQ详解
5
Redis 集合(Set)
Redis 集合(Set)
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。