我在我的应用程序中遇到了与R8融合相关的问题。在构建过程中,我收到以下错误消息:
AGPBI: {"kind":"warning","text":"The following library types, prefixed by java., are present both as library and non-library classes: java.util.LinkedHashMap, java.util.HashMap, java.util.AbstractMap, java.util.AbstractList, java.util.AbstractCollection, java.util.IdentityHashMap, java.util.ArrayList, java.util.LinkedList, java.util.Hashtable, java.util.concurrent.ConcurrentLinkedQueue, java.util.AbstractQueue, java.util.Vector, java.util.HashSet, java.util.AbstractSet, java.util.WeakHashMap", "sources":[{}],"tool":"R8"}
AGPBI: {"kind":"error","text":"Library class java.util.LinkedHashMap implements program class java.util.Map", "sources":[{}],"tool":"R8"}
AGPBI: {"kind":"error","text":"Library class java.util.HashMap implements program class java.util.Map", "sources":[{}],"tool":"R8"}
字符串
关于构建过程
的屏幕截图
你知道我怎么解决这个问题吗?
我试图设置保留软件包名称的proguard规则,但错误仍然存在
我使用这个命令来保存类
-keep class java.io.UncheckedIOException { *; }
-keep class java.lang.Iterable { *; }
-keep class java.time.Clock { *; }
-keep class java.time.DateTimeException { *; }
-keep class java.util.LinkedHashMap { *; }
-keep class java.util.Map { *; }
-keep class java.util.IdentityHashMap { *; }
-keep class java.util.LinkedHashMap implements java.util.Map
型
1条答案
按热度按时间o3imoua41#
这个问题通常发生在循环依赖的时候,在我的情况下解决我的问题,
首先:我尝试注解每个模块,然后构建项目。在尝试了很长一段时间(大约2天)后,我终于确定是某个模块导致了这个问题。
->功能注册和登录,主页,充值,myqr是导致此问题的模块
字符串
2:第二,我关注一个模块,它的代码比其他模块少,然后我分析了这个模块上的每个依赖关系。我试着注解那个模块上没有使用的依赖项,每次我做注解或更改时都构建项目4。最后,我确定了导致问题的库:
型
coreLibraryDesugaring:“com.android.tools:desugar_jdk_libs:$desugaringVersion”,
我删除了所有模块的这个依赖项,最后它没有问题地构建了项目。(这个库是由其他开发人员在项目开始时添加的,我不知道这个库的用途是什么,但因为我们没有使用它,我删除了它)