現在Flutterを使用すると、アセットは文字列からキーオフされるため、実行時にアセットの読み込みエラーが発生しやすくなります。文字列は分析時に検証されません(またはシステムによって生成/提供されません)。
Posseのライブアプリでの現在最も一般的なクラッシュは、アセット文字列の読み込みの失敗です。
また、pubspec.yamlから維持する文字列定数の手動ファイルもあります(おそらく、かなり簡単に自動生成できます)。
これは、私たちが支援できるパターンのようです。 このバグは、この種の失敗の可能性を減らすためのアイデアを見つけることに関するものです。
参考までに@yjbanov
既知のアセット名などの列挙型を自動生成できます。
私はまだこれを提供したいと思っています、それについてのフラッターチームの意見が何であるかはわかりませんでした。 私のPOCは、ベータ日以降凍結されています。 私はそれがPRであるかもしれないのに十分きれいないくつかのMVPを思い付くでしょう。 すぐに(TM)。
こんにちは、みんな:
私は網易会社のFly-Mixチームのメンバーです。 私のチームは、必要な機能をサポートするためのフラッター開発ツールFlr(Flutter-R)
を開発しました。
Flr
はフラッターリソースマネージャーツールで、フラッター開発者がpubspec.yaml
でアセットを自動指定し、AndroidでR.java
のような$ r.g.dart
ファイルを生成するのに役立ちます。フラッタープロジェクトのアセットを変更します。 r.g.dart
を使用すると、フラッター開発者は、次のようなアセット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プラグイン、CLI、およびVSCodeExtensionをサポートしてきました。
Flr AndroidStudioプラグインバージョン
FlrCLIバージョン
FlrVSCode拡張バージョン