错误:找不到成员:'packageRoot',如何解决忽略:Flutter 中的 deprecated_member_use?

Posted

技术标签:

【中文标题】错误:找不到成员:\'packageRoot\',如何解决忽略:Flutter 中的 deprecated_member_use?【英文标题】:Error: Member not found: 'packageRoot', how to solve ignore: deprecated_member_use in Flutter?错误:找不到成员:'packageRoot',如何解决忽略:Flutter 中的 deprecated_member_use? 【发布时间】:2022-01-18 15:39:50 【问题描述】:

在我的flutter项目中,我做了一些插件的更新,然后使用了flutter upgrade。之后,每当我运行我的颤振项目时,它都会显示以下错误-

    /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

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

【问题讨论】:

可以用最新版吗? pub.dev/packages/platform/versions/3.1.0 flutter pub 升级解决了我的问题 升级和清理后重启 android Studio 对我有用 【参考方案1】:

你需要升级你的依赖来解决这个问题,所以运行:

flutter pub upgrade

如果这仍然不起作用,则意味着您遇到了来自platform 的传递依赖的问题(platform 的版本低于3.1.0 有这个问题)。因此,像这样覆盖 pubspec.yaml 文件中的 platform 包:

dependency_overrides:
  platform: ^3.1.0

【讨论】:

我刚刚看到path_provider transitive dependency 也在使用platform: 3.0.0,不幸的是,path_provider: 2.0.8 的最新更新并没有解决这个问题,所以你需要覆盖依赖正如我在第二部分中提到的。 实际上@CopsOnRoad 事实证明path_provider 具有platform: ^3.0.0 而不是platform: 3.0.0 的依赖关系,因此只需执行flutter pub upgrade 即可,并且这种情况不需要覆盖. @Maks 我的意思是它已解决到有这个问题的platform: 3.0.0。但我不确定flutter pub upgrade 是否真的可以升级传递依赖。那我会更新我的答案,谢谢 谢谢,我也在用path_provider: 2.0.8。我做了flutter pub upgrade 然后做了flutter run 然后它显示了一个不同的错误。显示颤振修复提示将ext.kotlin_version 更改为最新(kotlinlang.org/docs/gradle.html#plugin-and-versions),在我的情况下为1.6.10。然后我再次运行flutter run,问题就解决了。所以对我来说,不需要platform: ^3.1.0 已确认。 flutter pub upgrade 帮助了。特别是在切换分支时,旧的没有最新的依赖关系。【参考方案2】:

尝试在 pubspec.yaml 文件中添加

dependencies: // under dependencies:
  platform: ^3.1.0

然后运行flutter pub get

【讨论】:

【参考方案3】:

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

flutter clean

flutter pub get

【讨论】:

这里也一样。在我删除 pubspeck.lock 之前,我永远无法完成这项工作。很好的见解,谢谢。【参考方案4】:
flutter pub upgrade

flutter clean

flutter pub get

【讨论】:

我的颤振版本 2.10.1 对我不起作用【参考方案5】:

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

flutter channel stable
flutter upgrade

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

【讨论】:

我关闭了 VSCode 然后清理并发布。然后它就像一个魅力。 在依赖项下添加这个=>依赖项:平台:^3.1.0。这应该是正确答案【参考方案6】:

首先,运行

flutter pub 已过时

然后

flutter pub 升级 --major-versions

【讨论】:

【参考方案7】:

我用一个命令修复了它:

$ flutter pub cache repair

【讨论】:

【参考方案8】:

我修好了: compileSdkVersion 31, 并升级 kotlin-version

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案9】:

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

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

    运行fluter downgrade 2.0.1 //2.0.1 means your working previous version of flutter 降级后,点击扩展按钮或使用快捷键Ctrl+SHIft+X,然后卸载并重新安装Flutter和Dart。

这对我有用。

【讨论】:

【参考方案10】:

对于 Flutter ios 用户:

运行以下命令后:

flutter channel stable
flutter upgrade
flutter pub upgrade

完成该过程后,尝试

pod repo update
pod install

pod install --repo-update

它对我有用。希望对您有所帮助。

【讨论】:

【参考方案11】:

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

    运行flutter pub upgrade 运行flutter pub outdated 运行flutter pub clean

注意:在项目根目录和示例包中运行flutter pub clean

另一个重要的事情是确保你使用的是 Flutter 的稳定版本。

【讨论】:

以上是关于错误:找不到成员:'packageRoot',如何解决忽略:Flutter 中的 deprecated_member_use?的主要内容,如果未能解决你的问题,请参考以下文章

易语言的错误怎么办错误(36): 找不到指定的对象成员命令名称“创建内存”

易语言:错误(36): 找不到指定的对象成员命令名称“打开”。

易语言问题 错误(36): 找不到指定的对象成员命令名称“取文本长度”。

核心数据:找不到成员 executeFetchRequest

在关闭中找不到成员

swift OutputStream 找不到成员“写”