guava - 如何纠正由番石榴引起的错误:程序类型已存在:com.google.common.util.concurrent.internal.InternalFutures
问题描述
AAR 库已经使用 com.google.guava。
如果应用在其 build.gradle 中包含以下内容:
api 'com.google.guava:guava:27.0-android'
构建应用程序会生成以下错误:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: ...
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.google.common.util.concurrent.internal.InternalFutures
如果我不包含“api 'com.google.guava:guava:27.0-android'”,则可以构建应用程序,但是当它到达使用 Guava 方法的点时会出现 java.lang.NoClassDefFoundError 的运行时错误:可迭代的.find
解决方案
我必须更新到版本 27.0.1,在撰写本文时,他们还没有用这个新版本更新自述文件。
implementation 'com.google.guava:guava:27.0.1-android'
推荐阅读
- reactjs - 除非'--jsx'-React 否则不能使用 JSX
- woocommerce - REST API POST 请求无法发布数据
- python - 我对简单代码中的函数有疑问
- rust - 如何从函数中返回一个函数以进行参数注入?
- jpackage - windows上的jpackage使程序无声无息
- c# - 从基本 asp.net 身份用户创建继承用户或为每个角色实现不同的接口?
- c# - Unity/C# - 仅在 VSCode 中的编译器错误,而不是 Unity 编辑器或 Visual Studio
- java - 二进制搜索功能未实现
- c - 用于验证矩阵在 C 中对称的递归函数
- flutter - 从表格中获取单元格值 - 颤动