【问题标题】:How to solve duplicate classes issue for Flutter?如何解决 Flutter 的重复类问题?
【发布时间】:2019-06-07 04:16:34
【问题描述】:

添加后

位置:^1.4.1

到我在 pubspec.yaml 中的依赖项:

dependencies:
  flutter:
    sdk: flutter

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  rxdart: ^0.20.0
  http: ^0.12.0
  date_format: ^1.0.5
  intl: ^0.15.7
  fluttertoast: ^2.2.3
  location: ^1.4.1

我得到了包,一切都很好,但是当我尝试构建它时,应用程序崩溃并显示一条消息:

正在调试模式下在 Lenovo K33a48 上启动 lib\main.dart... 正在初始化梯度... 解决依赖关系... 摇篮任务'assembleDebug'... D8:程序类型已经存在:android.support.v4.app.INotificationSideChannel

FAILURE:构建失败并出现异常。

  • 出了什么问题: 任务 ':app:transformDexArchiveWithExternalLibsDexMergerForDebug' 执行失败。

    com.android.builder.dexing.DexArchiveMergerException: 合并 dex 档案时出错: “这里是所有 jar 档案的列表” 在https://developer.android.com/studio/build/dependencies#duplicate_classes 了解如何解决问题。 程序类型已存在:android.support.v4.app.INotificationSideChannel

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 通过https://help.gradle.org获得更多帮助

在 18 秒内构建失败 完成错误:Gradle 任务 assembleDebug 失败,退出代码为 1

我的 targetSdk 是 28。我使用的是 Android Studio 3.2.1 非常感谢您的帮助!

【问题讨论】:

  • 谢谢@GünterZöchbauer,我已经学会了如何根据第一个链接访问android依赖树,但是编译器强制执行所有建议的解析策略并不足以解决问题。最后我得到了奇怪的错误。我注意到 Lyokone 的位置插件 1.4.1 与 fluttertoast 插件 2.2.3 一起使用导致了这个问题。只有将fluttertoast更新到最新版本2.2.6(该版本昨天发布)后,问题才得到解决。奇怪的是,这个问题只出现在个人电脑上,而不是 macbook 专业人士。
  • @miloss 你解决了这个问题吗?我看到了同样的问题。
  • 不 @RideSun ,我无法以这种方式解决它。插件更新解决了这个问题。

标签: flutter class dart flutter-dependencies


【解决方案1】:

发生这种情况是因为您使用的库使用了相同的依赖项。

解决方案 1

  1. 在 VSCode 中搜索 (Ctrl+Shift + P)
  2. 在您的错误 android.support.v4.app.INotificationSideChannel. 中搜索关键字Notification/Side/Channel。选择一个。
  3. 如果有相同的依赖,说明有重复的库。
  4. 解决方案:删除您正在使用的库之一

解决方案 2(推荐)

  1. 在 VSCode 中搜索 (Ctrl+Shift + P)
  2. 在您的错误 android.support.v4.app.INotificationSideChannel. 中搜索关键字Notification/Side/Channel。选择一个。
  3. 找到一个使用相同依赖的库,然后更新到latest package version
  4. 此解决方案将保留您正在使用的库而不删除它

【讨论】:

    【解决方案2】:

    我无法复制您报告的行为。正如您在 cmets 中提到的,该问题似乎已通过插件更新解决。运行flutter clean 应该可以解决依赖缓存中引起的大部分冲突。

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 2019-11-05
      • 2021-05-09
      • 2022-11-28
      • 2022-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多