运行项目时突然报错:Error while generating the main dex list.
然后网上各种查找,都说是包名重复导致的,当初我怀疑是使用了一个第三方库,第三方库依赖了 OkHttp 。 而我项目中原本就有 OkHttp 。
api "com.facebook.react:react-native:+"
于是我按照去重的方法
api ("com.facebook.react:react-native:+") {
exclude group: 'com.squareup.okhttp3'
}
结果还是一样报哪个错误
因为上面报错信息很少,所有我又通过./gradle assembleDebug --stacktrace
命令来查看具体的错误信息
从错误信息中可以看到ARouter$$Group$$operator
com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: com.alibaba.android.arouter.routes.ARouter$$Group$$operator
于是我找到了我的路由表管理类,发现是由于我刚才更新了git,同事上传了一个新的模块的路由表,而这个新模块的路由表的值的group跟其他模块的一样,所有就导致了包名重复导致
参考
Gradle 编译报错 - Error while generating the main dex list
ARouter的坑之Program type already present: com.alibaba.android.arouter.routes.ARouter
网友评论