gpt4 book ai didi

android - 可反射的 flutter 反射 : working example needed

转载 作者:IT王子 更新时间:2023-10-29 06:50:03 24 4
gpt4 key购买 nike

我想在跨平台(iOS、Android)项目中使用 Flutter 实现反射和 Reflectable package .为了使二进制文件简短,此包使用代码生成。

但是,在 tutorial/readme 之后对于这个包,我无法生成所需的代码,在本例中是文件 main.reflectable.dart。虽然我已达到一切正常运行的地步,但代码生成以以下语句结束:

[INFO] Succeeded after 88ms with 0 outputs

在下文中,我尝试展示我所做工作的可重现路径。为此,我将 flutter 移动到不同的路径并重新安装它,但没有在 IntelliJ IDEA 中重新安装 flutter 插件。

如何重现/我做了什么?

I) 像往常一样为 Mac 安装 Flutter。在命令行上:

cd ~/development 
git clone -b beta https://github.com/flutter/flutter.git
export PATH=/Users/yourname/development/flutter/bin:$PATH
flutter doctor

II) 在IntelliJ IDEA中新建一个Flutter项目

  1. 选择SDK路径:/Users/yourname/development/flutter
  2. 选择项目位置:~/gitroot/PlayGround/reflectable_test_2
  3. 添加与lib目录平行的目录entry_point
  4. 在目录 entry_point 中添加 dart 文件 main.dart
  5. https://github.com/dart-lang/reflectable中的main.dart中获取main.dart的内容(很多会显示红色)
  6. 从 lib 目录中删除 main.dart(取消选中“安全删除”和“在评论中搜索”)
  7. 删除测试目录下的widet_test.dart
  8. 在 dependencies 下的 pubspec.yaml 中添加“reflectable: any”
  9. 在 main.dart 中,单击“运行”,然后在出现的对话框中将入口点设置为/Users/yourname/gitroot/PlayGround/reflectable_test_2/entry_point/main.dart

加载依赖项后,一些红色摆动会消失,但“import 'main.reflectable.dart';”中的不会消失,因为该文件尚不存在。

III) 尝试在命令行上使用构建器生成 main.reflectable.dart:

cd /Users/yourname/gitroot/PlayGround/reflectable_test_2/
flutter packages pub run build_runner build entry_point

请注意,教程只说了而不是最后一行

pub run build_runner build DIR

但使用的行确实是correct when used in a Flutter project .按照自述文件/教程到目前为止,我得到了结果:

Package "build_runner" is not an immediate dependency.
Cannot run executables in transitive dependencies.
pub finished with exit code 65

IV) 在 IntelliJ 中,将“build_runner: any”添加到 pubspec.yaml 中的 dev_dependencies。在命令行再次运行(flutter packages pub run build_runner build entry_point)。这导致输出:

[INFO] Generating build script...
[INFO] Generating build script completed, took 506ms

[INFO] Initializing inputs
[INFO] Building new asset graph...
[INFO] Building new asset graph completed, took 776ms

[INFO] Checking for unexpected pre-existing outputs....
[INFO] Checking for unexpected pre-existing outputs. completed, took 3ms

[INFO] Running build...
[INFO] Running build completed, took 7ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 69ms

[INFO] Succeeded after 88ms with 0 outputs

总而言之,没有错误,但它也没有创建文件 main.reflectable.dart(0 输出)。我该怎么做才能解决这个问题?

最佳答案

也许唯一缺少的是做

flutter packages pub run build_runner build entry_point/main.dart

或者添加一个build.yaml文件

目标:
test_reflectable:
build 者:
可反射的:
生成_for:
- 入口点/main.dart

编辑:Here是一个示例存储库,它可以作为在 Flutter 中反射的非常简单的起点。

编辑 2:有一个 whitelist pub 支持入口点的位置(“Dart 程序”),而 entry_point 不在该列表中。尝试使用白名单中存在的目录。

关于android - 可反射的 flutter 反射 : working example needed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51169706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com