多个dex文件定义了Lcom / android / volley / toolbox / Volley;

时间:2018-07-02 10:44:43

标签: android-studio

我遇到错误

  

“多个dex文件定义了Lcom / android / volley / toolbox / Volley;

是否可以使用两个凌空库,即在一个项目中编译com.android.volley:volley:1.0.0dev.dworks.libs:volleyplus:+

1 个答案:

答案 0 :(得分:0)

如果这两个凌空库具有不同的程序包名称,则最好将两者都作为依赖项。 但是,使用两个(相同或相似?)库的附加值是什么?为什么不重构项目以减少依赖关系?

针对特定包装和类的多个dex定义的解决方案是添加适当的包装选项。例如

packagingOptions {
    pickFirst "anyFileWillDo"
    exclude "/secret-data/**"
}

在我看来,具有重复的库依赖性确实不是一个好习惯,它可能会对最终的二进制文件产生一些不确定性。由于 pickFirst 选项对于从正确版本的库中选择类并不确定,因此只能选择第一个看到的类。

请在此处查看:https://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.PackagingOptions.html