Flutter: 希望能够在运行时避免资产加载错误

创建于 2017-08-02  ·  3评论  ·  资料来源: flutter/flutter

目前使用 Flutter,很容易在运行时出现资产加载错误,因为资产是用字符串键控的,而这些字符串在分析时不会以任何方式验证(或由系统生成/提供)。

Posse 目前在其实时应用程序中最常见的崩溃是资产字符串加载失败。

他们还有一个手动的字符串常量文件,他们从他们的 pubspec.yaml 中维护(大概可以很容易地自动生成)。

这似乎是我们可以提供帮助的一种模式。 这个错误是关于寻找想法来减少这种失败的可能性。

仅供参考@yjbanov

P5 assets framework passed first triage tool

所有3条评论

我们可以自动生成已知资产名称的枚举,或者类似的。

我仍然热衷于提供这个,我从不知道 Flutter 团队对此有何看法。 我的 POC 从测试版开始就被冻结了。 我会想出一些足够干净的 MVP,它可以成为 PR。 很快(TM)。

大家好:

我是网易公司Fly-Mix Team的一员。 我的团队确实开发了一个 Flutter 开发工具: Flr(Flutter-R)来支持你想要的功能。

Flr是一个flutter资源管理器工具,可以帮助flutter开发者自动指定pubspec.yaml中的assets,并在Android中生成r.g.dart文件,喜欢R.java 。更改颤振项目资产。 使用r.g.dart ,flutter 开发人员可以通过引用它的资产 ID 函数在代码中应用资产,例如:

import 'package:flutter_r_demo/r.g.dart';

// test_sameName.png
var normalImageWidget = Image(
  width: 200,
  height: 120,
  image: R.image.test_sameName(),
);

// test_sameName.gif
var gifImageWidget = Image(
  image: R.mage.test_sameName_gif(),
);

// test.svg
var svgImageWidget = Image(
  width: 100,
  height: 100,
  image: R.svg.test(width: 100, height: 100),
);

// test.json
var jsonString = await R.text.test_json();

// test.yaml
var yamlString = await R.text.test_yaml();

PS:是的,它就像Android中的AAPT(Android Asset Packaging Tool)。

截至目前,Flr 已支持 Android Studio Plugin、CLI 和 VSCode Extension:

  1. Flr Android Studio 插件版本

    • GitHub: https ://github.com/Fly-Mix/flr-as-plugin

    • 插件主页: https ://plugins.jetbrains.com/plugin/13789-flr

    • flr-as-plugin 用法示例 Gif:

      flr_as_plugin-usage-example

  2. Flr CLI版本

    • GitHub: https ://github.com/Fly-Mix/flr-cli

    • CLI 主页: https ://rubygems.org/gems/flr

    • flr-cli 使用示例 Gif:

      flr_cli-usage-example

  3. Flr VSCode 扩展版本

    • GitHub: https ://github.com/Fly-Mix/flr-vscode-extension

    • 扩展主页: https ://marketplace.visualstudio.com/items?itemName=LincolnLaw.flr

    • flr-vscode-extension 用法示例:

      flr_vscode_extension-usage-example

此页面是否有帮助?
0 / 5 - 0 等级