【问题标题】:Desugaring of a Fragment inside a library is failing库内片段的脱糖失败
【发布时间】:2019-09-23 01:29:53
【问题描述】:

我在库项目中有一个片段 VideoPlayerBaseFragment。 我正在使用 artifactory build 在我的应用程序中使用这个库 实现

"com.mindvalley.module_videoplayer:module_videoplayer:1.9.3.6"

当我构建我的应用程序时,它会抛出以下错误:

默认的脱糖方法 com.mindvalley.module_videoplayer.base.fragment.VideoPlayerBaseFragment 失败,因为它的超类 androidx.fragment.app.Fragment 是 不见了

我的库模块实现了 exoplayer 库

api“com.google.android.exoplayer:exoplayer:2.10.5”

我找不到原因。它适用于我创建的其他库,并且它们中也有片段。

【问题讨论】:

  • 很难说,因为这个库不是公开的(所以这个问题不能被复制)。这可能是 d8 中的错误 - 尝试使用android.enableD8=false(在 gradle.properties 中)降级到 dx。如果构建通过 dx - 考虑报告此问题。

标签: android fragment androidx dex android-d8


【解决方案1】:

我也遇到过这个问题。在我的案例中,解决方案非常简单。我不得不在项目的 gradle.properties 文件中禁用 D8 的脱糖功能。这可以通过以下 2 行来完成:

android.enableD8=false
android.enableD8.desugaring=false

然后您可以同步项目文件、清理项目并构建调试 apk。我在尝试在运行 API 16 的模拟器上构建调试 apk 或运行仪器测试时遇到了这个问题,而在构建发布 apk 时从未遇到过。

【讨论】:

    猜你喜欢
    • 2020-03-09
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2015-05-24
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    相关资源
    最近更新 更多