无法使用 PathProvider 依赖项构建颤振项目
Posted
技术标签:
【中文标题】无法使用 PathProvider 依赖项构建颤振项目【英文标题】:Can't build a flutter project with PathProvider dependency 【发布时间】:2018-08-21 11:10:17 【问题描述】:免责声明:首先,这是我早期尝试使用 Flutter。如果是菜鸟问题,请原谅我。
我一直在为 ios 中的 Flutter 应用程序使用 MVP-Clean 架构,当我尝试构建一个可以轻松持久化数据的数据源时,我发现了 PathProvider 插件。
尝试下一个之后:
向项目添加依赖项
dependencies: path_provider: "^0.4.0"
提供依赖项
flutter packages get
pod install
我尝试编译项目,编译器喊道: ** 构建失败 **
Xcode 的输出:↳ === 使用配置调试构建项目运行器的目标运行器 === /proect_directory/ios/Runner/GeneratedPluginRegistrant.m:6:9: 致命错误:找不到“path_provider/PathProviderPlugin.h”文件 #import
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 产生 1 个错误。
我快速搜索了一下,没有找到任何有用的东西。
谁能照亮我的路?
编辑:
已经尝试过:
flutter update-packages --force-upgrade
并且医生输出没有显示任何错误:
flutter doctor
医生总结(要查看所有详细信息,请运行 flutter doctor -v):
[✓] Flutter(通道测试版,v0.1.5,Mac OS X 10.13.3 17D102,语言环境
zh-CN)
[✓] android 工具链 - 为 Android 设备开发(Android
SDK 27.0.3)
[✓] iOS 工具链 - 为 iOS 设备开发 (Xcode 9.2)
[✓] Android Studio(版本 3.0)
[✓] IntelliJ IDEA 社区版
(2017.3.4 版)
[✓] 连接的设备(1 个可用)
【问题讨论】:
你能不能再试试flutter update-packages --force-upgrade
然后flutter build apk
?还请提供flutter doctor
的输出
@GünterZöchbauer 感谢您的回复,我用更多信息更新了这个问题。 flutter build apk
运行良好,但我在 iOS 端遇到错误:/
查看github.com/flutter/flutter/issues/10654 以了解要尝试的内容。
切换到dev
频道可能也值得一试flutter channel dev
、flutter doctor
并再次尝试构建。
您永远不必运行“flutter update packages --force-upgrade”,这只是团队用来更新我们内部依赖项的工具。在您自己的项目中使用它可能会导致无法再次使用“flutter upgrade”。 :-/
【参考方案1】:
我刚刚删除了 podfile.lock 和 podfile 然后我运行命令 flutter build ios ,它会安装 podfile 和 podlock 完美但构建失败,因为我没有设置团队进行配置,所以我来到 android studio 的终端并运行命令 flutter run 并且 它工作! ..
【讨论】:
【参考方案2】:对我来说,这是通过编辑 https://github.com/flutter/flutter/issues/10654#issuecomment-389034245 中提到的 podfile 并将 xcode 的构建系统更改为 legacy 来解决的。
【讨论】:
【参考方案3】:-
在 xcode 中打开项目。即在 Android Studio 上,右键单击 -> Flutter -> 在 xcode 中打开。
找到 PathProviderPlugin.h 文件。 (查找 -> 在工作区中查找 -> 3. PathProviderPlugin.h)
单击结果。如果找不到结果,请右键单击 PathProviderPlugin.m 文件并选择“Reveal In Project Navigator”
在那里您将看到 PathProviderPlugin.h 文件。
在右侧,目标成员资格,将设置从项目更改为公开。
对编译器抱怨的任何文件执行此操作,直到您能够构建项目。
Check the image for reference. Use the highlighted button to open right hand panel (Added For Android devs who don't know much of xcode. :) )
【讨论】:
【参考方案4】:这个问题应该由https://github.com/flutter/flutter/pull/15437修复
要将修复应用到现有项目,请将these lines 添加到 ios/Podfile。
【讨论】:
这是实现它的正确方法。谢谢,米克尔!【参考方案5】:我终于找到了解决方法。
我去了 GitHub 仓库,找到了PathProviderPlugin.h
文件,并把它放在了位置:
build/ios/Debug-iphonesimulator/path_provider/path_provider.framework/Headers/
听起来有点脏,但这是保持编码的唯一方法。
希望能帮助别人。感谢@GünterZöchbauer 帮助我找到有用的线索。
【讨论】:
以上是关于无法使用 PathProvider 依赖项构建颤振项目的主要内容,如果未能解决你的问题,请参考以下文章
依赖项升级后 Android Firebase 依赖项出现颤振问题
同步 gradle 的问题:无法解析外部依赖项 com.android.tools.build:gradle,因为没有定义存储库