【问题标题】:Android Studio doesn't identify "on" keyword for Dart extension methodesAndroid Studio 没有为 Dart 扩展方法识别“on”关键字
【发布时间】:2020-07-09 06:11:23
【问题描述】:

我的 Android Studio 在 Dart 扩展方法的上下文中无法识别 on

void main() {
  print('42'.parseInt());
}

extension NumberParsing on String {
  int parseInt() {
    return int.parse(this);
  }
}

它在它下面显示一条红线,当我将鼠标悬停在上面时,它会显示:Undefined class 'on'.。结果,它也无法识别on 之后的接收者Type,在我的例子中是String

但是,它仍然可以编译、运行代码并产生预期的结果。所以我想这应该是一个愚蠢的Android Studio编辑器问题,编码时超级烦人。

知道如何解决这个问题吗?

analysis_options.yaml:

include: package:pedantic/analysis_options.1.8.0.yaml

analyzer:
  enable-experiment:
    - extension-methods
    - spread-collections

更多信息:

  • Flutter 插件版本:44.0.2
  • Dart 插件版本:192.7761
  • Android Studio 版本:3.6.1
  • extension 的错误在于允许实验。
  • try/catch 上下文中,我的Android Studio 将on 识别为关键字。

【问题讨论】:

  • 发布您的analysis_options.yaml 文件-enable-experiment: 中有extension-methods 吗?
  • @pskink 将我的analysis_options.yaml 添加到问题中。
  • 您在 pubspec.yaml 中的 environment: sdk: 中有什么? ">=2.7.0 <3.0.0"?
  • @pskink 我在 pubspec.yaml 中的 environment 中有 sdk: ">=2.1.0 <3.0.0",所以让我将其增加到 2.7.0 并再次检查...
  • 我尝试了 2.6,它也能正常工作,但低于它的任何东西都会显示一些扩展方法的 IDE 错误。 :thumbs-up:

标签: android-studio flutter dart


【解决方案1】:

正如@pskink 在 cmets 中提到的,问题出在我的 pubspec.yaml 中,其中 sdk: ">=2.1.0 <3.0.0" 对应于 environment。我需要将它提高到至少sdk: ">=2.6.0 <3.0.0" 才能解决问题。 (显然2.7.0 也可以。)

在那之后,我也不得不触摸flutter upgrade。似乎它很旧,因为升级相对需要很长时间。在那之后,每一个 IDE 警告都烟消云散了!

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 2020-12-03
    • 2011-02-05
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多