【问题标题】:Invalid redeclaration of 'SwiftEntryPlugin''SwiftEntryPlugin' 的无效重新声明
【发布时间】:2021-08-11 03:16:57
【问题描述】:

我在 Ubuntu 机器上开发了一个 Flutter 应用程序,它在 Android 上运行没有问题。现在我正尝试从 Mac 在 iOS 上运行它,但是当我开始调试时,我收到了如下几个错误:

/opt/flutter/.pub-cache/hosted/pub.dartlang.org/entry-0.0.2_2/ios/Classes/SwiftAnimateInPlugin.swift:4:14: error: invalid redeclaration of 'SwiftEntryPlugin'
public class SwiftEntryPlugin: NSObject, Flutter Plugin {
             ^

flutter doctor 用于 Flutter、Xcode 和 Connected 设备。

  • Flutter 2.2.0 - 通道稳定
  • 工具 - Dart 2.13.0

我检查了this question,但他们没有使用 Flutter,据我所知,答案并不相关。什么会导致此错误,我该如何解决?

【问题讨论】:

  • 链接中的答案应该是要遵循的答案。这通常是因为您的代码中有重复的文件。 Grep for SwiftEntryPlugin: NSObject 并检查所有文件都有哪些代码。其中一个应该是重复的。这不一定与颤振特别相关。
  • @NisanthReddy 我没有重复的文件,但是两个不同名称的文件碰巧有重复的代码,无论出于何种原因。我一直在寻找SwiftEntryPlugin,它返回的结果太多,所以你建议用: NSObject grep 很有帮助。
  • 太棒了。很高兴能帮上忙:)

标签: ios swift xcode flutter


【解决方案1】:

从上面的评论中获取 Nisanth Reddy 的建议并搜索SwiftEntryPlugin: NSObject,我的搜索范围缩小到 2 个文件。这些文件是./my-app/ios/.symlinks/plugins/entry/ios/Classes/SwiftEntryPlugin.swift./my-app/ios/.symlinks/plugins/entry/ios/Classes/SwiftAnimateInPlugin.swift。经过一些试验和错误之后,似乎两个文件都是必需的(我认为我正在使用的特定 Flutter 包需要冗余的文件)但它们中的代码完全相同,所以我从其中一个中删除了所有代码文件,但将空文件留在目录中,问题已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多