关于 Flutter App / CocoaPod 的 nil 的未定义方法 `map' 的错误:NilClass 错误

问题描述 投票:0回答:8

我的 Flutter 应用程序出现错误。当我在终端中运行“flutter run”脚本时,我从 Cocoapods 收到以下错误:“CocoaPods 的错误输出:搜索检查失败:nil:NilClass 的未定义方法‘map’”(也可从附件中看到)图片)。

我该如何解决这个问题?

ios xcode flutter cocoapods
8个回答
153
投票

我试图在 ios 文件夹中运行 pod install 命令。 @boonyongyang解决方案是必要的,但似乎我安装了2个

ffi
,所以我还必须使用
arch -x86_64
命令

运行它
sudo arch -x86_64 gem install ffi
# go to ios folder then run
arch -x86_64 pod install

** 更新 **

flutter 团队有一个新推荐方法,@Chandrashekar-Ollala 也提到过

sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc

139
投票

您使用的是苹果M1吗?我也遇到了这个问题,经过一些研究,我发现这可能与 Rosetta 有关。您可以参考在 Apple Silicon (M1) 上运行 CocoaPods

我通过在终端中输入以下内容成功解决了 MacBook Air M1 上的此问题:

sudo arch -x86_64 gem install ffi

从这里https://stackoverflow.com/a/65334677/13814270


46
投票

我花了好几个小时才弄清楚这个问题,Stack Overflow 上的解决方案都不起作用。最后在 Flutter 官方文档中找到了这个注释。

此问题出现在运行 M1 芯片的计算机上。只需在终端中运行以下代码片段,一切正常。

 sudo gem uninstall ffi && sudo gem install ffi -- --enable-libffi-alloc

4
投票

我在其他命令中找到了解决方案。任何

ffi
安装/重新安装都没有帮助。

我必须手动清除所有 cocoapods 缓存才能解决该问题。

sudo rm -rf ~/.cocoapods/repos
,然后
pod install


3
投票

正确的答案对我不起作用,所以我删除了 Pod.lock 文件并应用了以下步骤:

M1 中的可可豆荚安装

sudo gem install cocoapods
sudo gem install ffi
arch -x86_64 sudo gem install cocoapods -n /usr/local/bin
sudo gem install cocoapods -n /usr/local/bin

安装ffi

sudo arch -x86_64 gem install ffi

#更新仓库

arch -x86_64 pod install --repo-update

Flutter iOS 构建

flutter clean
flutter build ios

1
投票

在我的 MacBook M1 上,当我不小心向

pubspec.yaml
文件中添加了一个空行时,出现了这个问题。删除该行解决了问题(看起来不能连续有两个空行)。


0
投票

就我而言,关键是为 x86_64 安装 ruby 3.1.2。

为了实现这一目标,我需要:

  • 使用rosetta运行终端
  • 为x86_64安装brew
  • 安装rvm
  • 安装红宝石3.1.2
  • bundle install
    在ios文件夹中
  • `捆绑执行 pod 安装

-2
投票
remove Podfile.lock
flutter clean
flutter build ios
© www.soinside.com 2019 - 2024. All rights reserved.