错误: 成员没有找到: ‘ packageRoot’,如何解决忽略: 在 Flutter 中弃用_Member_use?

在我的 flutter 项目中,我对插件进行了一些更新,然后使用 flutter 升级。在此之后,每当我运行我的颤振项目显示以下错误-

    /C:/src/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.2/lib/src/interface/local_platform.dart:46:19: Error: Member not found: 'packageRoot'.
io.Platform.packageRoot; // ignore: deprecated_member_use
^^^^^^^^^^^ FAILURE: Build failed with an exception.


* Where: Script 'C:\src\flutter\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1102


* What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'.
> Process 'command 'C:\src\flutter\flutter\bin\flutter.bat'' finished with non-zero exit value 1


* Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.


* Get more help at https://help.gradle.org


BUILD FAILED in 20s Exception: Gradle task assembleDebug failed with exit code 1

所以,我需要一个建议,我该如何解决这个问题?

79373 次浏览

对我来说,打扫和取包裹没有用。这个错误是在我升级颤振之后开始的。我在主频道上,对我来说一个快速的解决办法是切换到稳定。

flutter channel stable
flutter upgrade

也许有一个更好的解决方案,直接处理平台包。

唯一可以帮助我的是从项目文件夹中删除 pubspec.lock文件,然后再运行

flutter clean


flutter pub get

您需要升级您的依赖项来修复这个问题,所以运行:

flutter pub upgrade

如果这仍然不起作用,那么这意味着您在 platform的传递依赖性上有这个问题(版本低于 3.1.0platform有这个问题)。因此,像下面这样覆盖 pubspec.yaml文件中的 platform包:

dependency_overrides:
platform: ^3.1.0
flutter pub upgrade


flutter clean


flutter pub get

我只用一个命令就修好了:

$ flutter pub cache repair

首先,跑

flutter pub outdated

那么

flutter pub upgrade --major-versions

我修好了: 编译 SdkVersion 31, 升级 Kotlin 版本

如果以上所有的解决方案都不适合你,就像我一样,

如果问题立即发生,你升级你的颤振

  1. run fluter downgrade 2.0.1 //2.0.1 means your working previous version of flutter
  2. after downgrading, click on the extensions button or use shorcut Ctrl + SHift + X, then uninstall and re-install Flutter and Dart.

这对我有用。

尝试添加 pubspec.yaml 文件

dependencies: // under dependencies:
platform: ^3.1.0

然后运行 flutter pub get

Why this error occurred

../../../development/flutter/.pub-cache/hosted/pub.dartlang.org/platform-3.0.0/lib/src/interface/local_platform.dart:46:19: Error: Member not found: 'packageRoot'. io.Platform.packageRoot; // ignore: deprecated_member_use

这是您在构建文件时会遇到的错误类型。

如果您注意到错误是由包引起的 platform:3.0.0

所以我们只要把它递增到 3.1.0就可以覆盖它了

对于 Flutter iOS 用户:

After running following commands:

flutter channel stable
flutter upgrade
flutter pub upgrade

完成此过程后,请尝试

pod repo update
pod install

或者

pod install --repo-update

对我很有用,希望对你有帮助。

我也遇到过同样的问题,我通过以下步骤解决了它:

  1. 运行 flutter pub upgrade
  2. 运行 flutter pub outdated
  3. 运行 flutter pub clean

Note: run flutter pub clean in project root and in example packege.

另一个重要的事情是确保你是在稳定版本的扑动。

更新你的 pubspec.yaml

dependency_overrides:
platform: ^3.1.0

enter image description here

在项目路径的终端中输入以下内容。

  1. 摆动式酒吧缓存修理
  2. flutter pub upgrade

解决方案

删除 pubspec.lock

  • 删除 pubspec.lock文件
  • 为了采取更好的措施,请将 platform的父发布版本(例如 path_provider)更新到最新版本。
  • flutter pub get

Pubspec 依赖重写

  • 添加 platform及其最新版本作为依赖项覆盖
dependency_overrides:
# fix `packageRoot`compile error for iOS, because `path_provider` is using an old version of `platform`
platform: ^3.1.0 # overrides `path_provider`
  • flutter pub get

Root Cause

  • platform酒吧已经过时了。很可能在你的情况下,它是从 path_provider酒吧的传递依赖。
  • 由于某些原因,flutter pub get不会更新 platform,这是一个传递依赖。即使您将其父酒吧 path_provider的版本更改为最新版本,并再次调用 flutter pub get

检查 platform发布版

flutter pub deps打印包依赖图。然后在输出中找到“ 平台”字符串。

pubspec.lock文件中,查找“ 平台:”字符串。

  1. flutter pub get
  2. 酒吧升级

对我有用