【问题标题】:Class not found on Release Build在 Release Build 上找不到类
【发布时间】:2023-01-18 22:42:16
【问题描述】:

所以我有一个多模块项目,App Module 是从功能模块实现的,而不是实现模型模块。在调试构建上一切正常,但在应用模块上启用 Minify 的发布构建上却不行。在 Release Build 上,我不断收到这样的异常:

Caused by java.lang.ClassNotFoundException: com.lelestacia.lelenimexml.core.model.anime.Anime

Anime 是 Model Module 中的一个模型类,App Module 没有使用它。但是在 App Module 上启用 Release Build 和 minify 时,这种情况一直在发生。但是,如果在 App Module 上禁用 Minify,则一切正常。

这是我的存储库:Github Repository

【问题讨论】:

    标签: android kotlin minify android-multi-module


    【解决方案1】:

    在类定义之前添加 @Keep。这可以防止 Proguard/R8 缩小从发布版本中删除类。这有时对于您从未实例化的类是必需的,除非通过反射(和可能的分割)。

    @Keep
    @Parcelize
    data class Anime(
        //...
    

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 2013-01-24
      • 2020-03-28
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      • 1970-01-01
      • 2016-10-20
      相关资源
      最近更新 更多