Android 渐变:多个dex文件定义LR

Android 渐变:多个dex文件定义LR,android,gradle,android-gradle-plugin,tensorflow-lite,Android,Gradle,Android Gradle Plugin,Tensorflow Lite,所以我尝试使用Tensorflow lite版本0.1.1 但当我在gradle dependencies中添加库时,我得到: 错误:将字节码转换为索引时出错:原因: com.android.dex.DexException:多个dex文件定义LR 我使用的是AGP 3.1.0-alpha5,但我在alpha06、alpha07中也会出现错误(不同的错误)……我使用的是multidex,但它设置正确,在没有tensorflow的情况下工作 我试图删除D8(这个东西)并更改gradle包装器版本。

所以我尝试使用Tensorflow lite版本0.1.1

但当我在gradle dependencies中添加库时,我得到:

错误:将字节码转换为索引时出错:原因: com.android.dex.DexException:多个dex文件定义LR

我使用的是AGP 3.1.0-alpha5,但我在alpha06、alpha07中也会出现错误(不同的错误)……我使用的是multidex,但它设置正确,在没有tensorflow的情况下工作

我试图删除D8(这个东西)并更改gradle包装器版本。。。但还是没有运气

我真的不明白这个错误意味着什么,所以有人能解释一下多个dex文件定义LR意味着什么吗?或者给出一些解决方案?

编辑1:

我更感兴趣的是什么是类/文件LR。我确实理解在我的dex文件中定义了两次类,但我不理解这个类是关于什么的。因此,解决这个问题变得更加困难


感谢您的帮助

当在代码库中编译了重复的namespace.classname时,会导致此错误

这通常是由重复依赖项引起的。通常,罪魁祸首是“可传递依赖”,也就是依赖的依赖

您可以查看gradle android资源树以找到罪魁祸首。然后对包含它的依赖项使用transitive=false

如果您只需要删除该子依赖项的一部分可传递依赖项,则使用exclude。有很多这样做的例子


我相信还有一个gradle标志,上面写着“使用最新版本”,其余的就不用管了,但这是不好的,你应该故意使用你的版本。希望有帮助

LR是复制类。这实际上是不同代码之间的差异,但实际上是对这个问题的重复。^Hello Zoe,谢谢你的帮助。虽然这些问题非常相似,但我相信我的问题有一些特殊性。另一个问题中的问题可以通过简单地在应用程序中设置Multidex来解决,但在我的例子中,Mutlidex已经设置好了。此外,例外情况也不同(DexException与ProcessException)。您知道大多数NPE问题都标记为重复的NPE问题,对吗?stacktraces不需要100%匹配“LR;”,它是不带包名的资源类“R”。在dex文件中,首字母L和结尾;这就是问题所在,伊莎贝拉。Tensorflow lite没有任何软件包。如果你发一封asnwer,我可以接受