java - Android Gradle 插件导致的重复类
问题描述
我在使用 Gradle 和 Android Studio 时遇到了一些问题。在尝试编译依赖com.nukkitx.protocol:bedrock-v407:2.6.0-SNAPSHOT
项时,我遇到了重复的类错误,但是在普通桌面 Gradle 项目中编译时,它编译得很好。任何帮助将不胜感激。
代码:https ://github.com/rtm516/GeyserAndroid
错误:
Duplicate class it.unimi.dsi.fastutil.ints.IntIterator found in modules jetified-fastutil-common-8.3.1.jar (com.nukkitx.fastutil:fastutil-common:8.3.1) and jetified-fastutil-int-common-8.3.1.jar (com.nukkitx.fastutil:fastutil-int-common:8.3.1)
Duplicate class it.unimi.dsi.fastutil.longs.LongIterator found in modules jetified-fastutil-common-8.3.1.jar (com.nukkitx.fastutil:fastutil-common:8.3.1) and jetified-fastutil-long-common-8.3.1.jar (com.nukkitx.fastutil:fastutil-long-common:8.3.1)
Duplicate class it.unimi.dsi.fastutil.objects.ObjectIterator found in modules jetified-fastutil-common-8.3.1.jar (com.nukkitx.fastutil:fastutil-common:8.3.1) and jetified-fastutil-object-common-8.3.1.jar (com.nukkitx.fastutil:fastutil-object-common:8.3.1)
解决方案
设法通过使用https://github.com/shevek/jarjar并使用以下内容删除重复的类来解决此问题。
implementation jarjar.repackage {
from 'com.nukkitx.fastutil:fastutil-common:8.3.1'
classDelete "it.unimi.dsi.fastutil.ints.IntIterator"
classDelete "it.unimi.dsi.fastutil.longs.LongIterator"
classDelete "it.unimi.dsi.fastutil.objects.ObjectIterator"
}
推荐阅读
- javascript - 对输入动态应用 JavaScript
- command-line-interface - ZAP-CLI 报告生成
- visual-studio - 如何停止 Visual Studio 2017 v15.7.2 在新浏览器窗口中打开调试会话?
- android - RadioButton 上带有文本的自定义按钮
- apache-kafka - Kafka 内置的重试机制究竟是如何工作的?
- android - 从钩子方法获取设备传感器状态
- apache-spark - 使用 Spark (1.6.0) SQL 的 Kerberos 启用远程 Hive Meta Store (hive-1.1.0) 访问问题
- sql-server - 提高前 1 个查询的性能
- sql - 如何删除压缩表中的列?
- android - getIntger() -> getLong()?