Caused by: com.android.dex.DexException: Multiple dex files define Lcom/esotericsoftware/reflectasm/MethodAccess;
上面的错误阻止了我的Android项目的构建,我正在使用Kryonet并将其作为以下依赖项包含在build.gradle中。
dependancies{
implementation group: 'kryonet', name: 'kryonet', version: '2.21'
implementation group: 'com.esotericsoftware', name: 'kryo', version: '4.0.1'
似乎Kryo和Kryonet都包含此类,但是我不知道如何解决该问题,我不能简单地删除Kryo,因为那样我将无法访问序列化库。
最佳答案
如果运行gradle app:dependencies
,您会注意到依赖项树为:
+--- kryonet:kryonet:2.21
| +--- com.esotericsoftware.reflectasm:reflectasm:1.07
| +--- com.esotericsoftware.minlog:minlog:1.2
| \--- org.objenesis:objenesis:2.1 -> 2.5.1
+--- com.esotericsoftware:kryo:4.0.1
| +--- com.esotericsoftware:reflectasm:1.11.3
| | \--- org.ow2.asm:asm:5.0.4
| +--- com.esotericsoftware:minlog:1.3.0
| \--- org.objenesis:objenesis:2.5.1
它们具有完全相同的依赖关系,但Kyro依赖较新的版本。
所以我只需要删除对kyronet的依赖
implementation group: 'kryonet', name: 'kryonet', version: '2.21'
编辑
这应该可以解决您的问题,并让您保留两个库
implementation (group: 'kryonet', name: 'kryonet', version: '2.21') {
exclude group: 'com.esotericsoftware.reflectasm', module: 'reflectasm'
exclude group: 'com.esotericsoftware.minlog', module: 'minlog'
}
implementation group: 'com.esotericsoftware', name: 'kryo', version: '4.0.1'
关于android - 由于Kryonet中重复的类定义,因此无法编译项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721877/