Android AGP 8.4 和刀柄

问题描述 投票:0回答:1

将 Android Studio 更新到新版本(Jellyfish)并将 Android Gradle 插件更新到 8.4 后,我的版本构建失败,出现了一系列与 daggar/hilt 注入相关的问题。我花了一下午的时间为正在注入的所有内容添加 keep 规则,最终出现一个错误,提示我需要 CoroutineScope 的 @Provides 规则,但我无法解决该问题。

谁能给我一套关于 Daggar/Hilt 和 AGP 8.4 的简明规则?

该项目是多模块项目。我还遇到了名称冲突的问题(两个模块将不同的类映射到 a.a)。为了解决这个问题,我把:

repackageclasses 'x'

每个模块的 x 值不同。

最后我恢复了AGP。但从长远来看,我需要找出解决方案(或者希望更新能够解决它)。

android android-gradle-plugin dagger-hilt
1个回答
0
投票

根本原因

如果您在库模块中启用了

isMinifyEnabled = true
,那么库模块将在向应用程序或任何其他模块提供 aar 文件之前自行缩小。

这意味着库将被缩小,而不知道其他模块使用哪些类(除了一些保留规则之外,所有内容都将被缩小)。

解决方案

在库模块中使用

isMinifyEnabled = false
并添加
consumerProguardFiles("consumer-rules.pro")
这样让应用程序模块可以缩小您的库模块。

在此更改之后,我们现在可以将 AGP 更新到 8.4.1,将 gradle 包装器更新到 8.6,而不会出现任何 hilt 或 proguard 问题。

这就是我解决问题的方法。如果您有任何问题,请在评论中告诉我。它应该可以通过更新混淆器规则来修复。

注意:这个答案适用于多模块项目,而不适用于在 maven 等地方发布的库。

© www.soinside.com 2019 - 2024. All rights reserved.