所以我试图使用Tensorflow-lite版本0.1.1。
但是当我在gradle依赖项中添加库时,我得到了:
错误:将字节码转换为dex时出错:原因: com.android.dex.DexException:多个dex文件定义LR;
我正在使用AGP 3.1.0-alpha5,但我也在alpha06,alpha07中得到错误(不同的)...我正在使用multidex,但它设置正确并且没有张量流。
我试图删除D8(此事here)并更改gradle包装器版本......但仍然没有运气。
我真的不明白这个错误意味着什么,所以有人可以解释多个dex文件定义LR意味着什么吗?或者给出一些解决方案?
编辑1:
我对什么是类/文件 LR 更感兴趣。我知道在我的dex文件中定义了两次类,但是我不明白这个类的含义。因此解决问题变得更加困难。
感谢任何帮助!
答案 0 :(得分:1)
如果在代码库中编译了一个重复的namespace.classname,则会导致此错误。
这通常是由重复依赖引起的。通常,罪魁祸首是“传递依赖”,也就是依赖的依赖。
你可以查看你的gradle android资源树来找到罪魁祸首。然后对包含它的依赖项使用transitive = false。
如果您只需删除该子依赖项的部分传递依赖项,请改用exclude。有很多如何做到这一点的例子。
我相信还有一个gradle标志可以说“使用最新”并将其余部分搞定,但这很糟糕,你应该故意使用你的版本。希望有所帮助