错误:没有为类 'Utf8' 定义 getter 'addressOf'

Posted

技术标签:

【中文标题】错误:没有为类 \'Utf8\' 定义 getter \'addressOf\'【英文标题】:Error: The getter 'addressOf' isn't defined for the class 'Utf8'错误:没有为类 'Utf8' 定义 getter 'addressOf' 【发布时间】:2021-08-11 13:30:18 【问题描述】:

/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/utf8.dart:63:33: 错误:没有为类 'Utf8' 定义 getter 'addressOf'。

'Utf8' 来自'package:ffi/src/utf8.dart' ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/ffi-0.1.3/lib/src/utf8.dart')。 尝试将名称更正为现有 getter 的名称,或定义 一个名为“addressOf”的 getter 或字段。字符串 toString() => fromUtf8(addressOf); ^^^^^^^^^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_svg-0.18.1/lib/src/picture_provider.dart:50:59: 错误:没有名为“nullOk”的命名参数。 上下文!=空? Localizations.localeOf(context, nullOk: true) : null, ^^^^^^ /C:/src/flutter/packages/flutter/lib/src/widgets/localizations.dart:413:17: 背景:找到了这个候选人,但论据不匹配。静止的 语言环境 localeOf(BuildContext 上下文) ^^^^^^^^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/path_provider_windows-0.0.4+3/lib/src/path_provider_windows_real.dart:126:25: 错误:没有为类 'GUID' 定义 getter 'addressOf'。

“GUID”来自“package:win32/src/structs.dart” ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib/src/structs.dart')。 尝试将名称更正为现有 getter 的名称,或定义 一个名为“addressOf”的 getter 或字段。 knownFolderID.addressOf, KF_FLAG_DEFAULT, NULL, pathPtrPtr); ^^^^^^^^^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib/src/structs.dart:1067:7: 错误:没有为类 'LOGFONT' 定义 getter 'addressOf'。

'LOGFONT' 来自'package:win32/src/structs.dart' ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib/src/structs.dart')。 尝试将名称更正为现有 getter 的名称,或定义 一个名为“addressOf”的 getter 或字段。 addressOf.cast().elementAt(28).cast(); ^^^^^^^^^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib/src/structs.dart:1112:29: 错误:没有为类定义 getter 'addressOf' 'ENUMLOGFONTEX'。

'ENUMLOGFONTEX' 来自'package:win32/src/structs.dart' ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/ lib/src/structs.dart')。 尝试将名称更正为现有 getter 的名称,或定义 一个名为“addressOf”的 getter 或字段。 LOGFONT 得到 elfLogFont => addressOf.cast().ref; ^^^^^^^^^ /C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/lib/src/structs.dart:1114:29: 错误:没有为类定义 getter 'addressOf' 'ENUMLOGFONTEX'。

'ENUMLOGFONTEX' 来自'package:win32/src/structs.dart' ('/C:/src/flutter/.pub-cache/hosted/pub.dartlang.org/win32-1.7.4+1/ lib/src/structs.dart')。 尝试将名称更正为现有 getter 的名称,或定义 一个名为“addressOf”的 getter 或字段。字符串获取 elfFullName => 地址的 ^^^^^^^^^

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

其中:脚本 'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle' 行: 1035

出了什么问题:任务 ':app:compileFlutterBuildDebug' 执行失败。 Process 'command 'C:\src\flutter\bin\flutter.bat'' 以非零退出值 1 结束

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

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

BUILD FAILED in 1m 6s Exception: Gradle task assembleDebug failed with 退出代码 1

【问题讨论】:

您可能在 pubspec.yaml 中将 ffi 包限制为 为了将来尝试让你的问题描述更短,人们更有可能回答一个简短而清晰的问题。良好的锁编码:) 【参考方案1】:

我今天收到了这个错误。 这是我所做的,

    已删除.idea 文件夹和build 文件夹以及pubspec-lock 文件。 运行flutter pub get

经过这两个简单的步骤,项目编译没有任何错误。

【讨论】:

谢谢,这解决了我几个月未运行的项目的问题。 谢谢,这对我有用,但我真的很担心其他项目,为什么会这样?是因为颤振/飞镖升级吗?还是 android Studio 升级?为什么依赖关系破坏了? 我没有找到 .idea 文件夹但删除了构建文件夹和 pubspec-lock 文件解决了我的问题 那些过多的错误听起来肯定比我期望用这样一个简单的解决方案解决的要可怕得多。但它确实有效。非常感谢! 这解决了我的问题。谢谢【参考方案2】:

您应该搜索哪个依赖项破坏了您的构建:

flutter pub deps

在结果中全局查找win32,取错误的依赖。

对我来说,是path_provider:

|-- path_provider 1.6.18 <- Latest version 2.0.1
|   |-- flutter...
|   |-- path_provider_linux 0.0.1+2
|   |   |-- flutter...
|   |   |-- path...
|   |   |-- path_provider_platform_interface...
|   |   '-- xdg_directories 0.1.2
|   |       |-- meta...
|   |       |-- path...
|   |       '-- process 4.1.0
|   |           |-- file...
|   |           |-- path...
|   |           '-- platform...
|   |-- path_provider_macos 0.0.4+4
|   |   '-- flutter...
|   |-- path_provider_platform_interface 1.0.3
|   |   |-- flutter...
|   |   |-- meta...
|   |   |-- platform 3.0.0
|   |   '-- plugin_platform_interface...
|   '-- path_provider_windows 0.0.4+1
|       |-- ffi 0.1.3
|       |-- flutter...
|       |-- meta...
|       |-- path...
|       |-- path_provider_platform_interface...
|       '-- win32 1.7.3 <--- Here
|           '-- ffi...

转到https://pub.dev/ 并获取最新版本。然后,创建futter clean &amp;&amp; flutter pub get 并尝试重新构建您的应用程序。

【讨论】:

你怎么知道是'path_provider'【参考方案3】:

您应该搜索哪个依赖项破坏了您的构建:

    首先有一个android studio插件“Flutter Enhancement Suite”安装它 它会告诉你哪些依赖项需要更新到新版本。 有冲突的依赖项将它们更改为任何类似的依赖项 库比蒂诺图标:^1.0.2 自动大小文本:^2.1.0 path_provider:任意 运行 pub get。 转到 pub pubspec.lock 文件 搜索您在第 2 步中更改为任何版本的依赖项。 替换 pubspec.yaml 中的版本。 及其完成[输入图像 Flutter 增强套件][1]

how to upgrade dependencies within android studio

How to find perfect version for conflicting versions that we change with any

【讨论】:

【参考方案4】:
    扑干净 颤振酒吧获取 颤振酒吧升级

【讨论】:

这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review 顺便解决了我的问题 这解决了我的问题很好的回答人【参考方案5】:

S-O-L-U-T-I-O-N

删除:

-> .idea folder
->  build folder 
->  pubspec-lock file.

T-H-E-N:

run flutter pub get

完成。

【讨论】:

【参考方案6】:

在我的 pubspec.yaml 中添加 ffi: ^1.0.0 已为我解决。

【讨论】:

【参考方案7】:

我找到了解决方案。从文件夹中删除这些文件

“.idea”文件

“构建”文件

“pubspec-lock”文件。

删除“flutter clean”表单终端后。然后“pub get”。

【讨论】:

感谢一位同事在 Windows 上开发的项目后,我无法使用据称较新的颤振工具链让该项目在 linux 上运行。在为 flutter_svg、intl、image 和 xml 包设置依赖项覆盖后,您的解决方案是 apk 的最后一步。【参考方案8】:

将所有软件包升级到最新版本解决了我的问题。因为距离我上次打开这个项目已经有一段时间了。

【讨论】:

以上是关于错误:没有为类 'Utf8' 定义 getter 'addressOf'的主要内容,如果未能解决你的问题,请参考以下文章

flutter-web: build_runner getter 'typeArguments' 没有为类 'Annotation' 错误定义

没有为类 'Map<>' 定义 getter 为 Map 列出 getter

没有为类'Person'定义方法'set_age'。飞镖

错误:没有为类“BuildContext”定义方法“ancestorInheritedElementForWidgetOfExactType”

Flushbar 插件:错误:没有为类“FocusScopeNode”定义方法“附加”

Flutter 2 构建项目:错误:没有为类“_LoadingIndicatorState”定义方法“SpinKitPouringHourglass”