gradle Android中R8优化过程中库和程序类之间的冲突-多模块项目

xggvc2p6  于 2023-08-06  发布在  Android
关注(0)|答案(1)|浏览(263)

我在我的应用程序中遇到了与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

o3imoua4

o3imoua41#

这个问题通常发生在循环依赖的时候,在我的情况下解决我的问题,
首先:我尝试注解每个模块,然后构建项目。在尝试了很长一段时间(大约2天)后,我终于确定是某个模块导致了这个问题。
->功能注册和登录,主页,充值,myqr是导致此问题的模块

implementation project(':feature-onboarding')
implementation project(':feature-login')
implementation project(':feature-history')
implementation project(':feature-registro')
implementation project(':feature-shopping-qr')
implementation project(':feature-myqr')
implementation project(':feature-home')
implementation project(':feature-help')
implementation project(':feature-promotions')
implementation project(':feature-transactions')
implementation project(':feature-profile')
implementation project(':feature-recharges')
implementation project(':common')
implementation project(':domain')
implementation project(':data')
implementation project(':usecases')
implementation project(':framework:imagemanager')
implementation project(':framework:databasemanager')
implementation project(":framework:security")
implementation project(":framework:qrmanager")

字符串
2:第二,我关注一个模块,它的代码比其他模块少,然后我分析了这个模块上的每个依赖关系。我试着注解那个模块上没有使用的依赖项,每次我做注解或更改时都构建项目4。最后,我确定了导致问题的库:

def desugaringVersion = "1.1.5"


coreLibraryDesugaring:“com.android.tools:desugar_jdk_libs:$desugaringVersion”,
我删除了所有模块的这个依赖项,最后它没有问题地构建了项目。(这个库是由其他开发人员在项目开始时添加的,我不知道这个库的用途是什么,但因为我们没有使用它,我删除了它)

相关问题