Flutter: Möchte in der Lage sein, Asset-Ladefehler zur Laufzeit zu vermeiden

Erstellt am 2. Aug. 2017  ·  3Kommentare  ·  Quelle: flutter/flutter

Derzeit ist es bei Flutter sehr einfach, dass es zur Laufzeit zu Fehlern beim Laden von Assets kommt, da Assets von Strings getrennt werden, die zum Analysezeitpunkt in keiner Weise validiert (oder vom System generiert/bereitgestellt) werden.

Der derzeit häufigste Absturz in der Live-App von Posse ist ein fehlgeschlagenes Laden von Asset-Strings.

Sie haben auch eine manuelle Datei mit String-Konstanten, die sie von ihrer pubspec.yaml pflegen (vermutlich könnte sie ziemlich einfach automatisch generiert werden).

Dies scheint nur ein Muster zu sein, bei dem wir helfen könnten. Bei diesem Fehler geht es darum, Ideen zu finden, um die Wahrscheinlichkeit dieser Art von Fehlern zu verringern.

FYI @yjbanov

P5 assets framework passed first triage tool

Alle 3 Kommentare

Wir könnten automatisch eine Aufzählung bekannter Asset-Namen oder ähnliches generieren.

Ich bin immer noch sehr daran interessiert, dies zu liefern, ich war mir nie sicher, was die Meinung des Flutter-Teams dazu war. Mein POC ist seit den Beta-Tagen eingefroren. Ich werde mir etwas MVP einfallen lassen, das sauber genug ist, dass es ein PR sein könnte. Bald (TM).

Hallo zusammen:

Ich bin Mitglied des Fly-Mix-Teams der Firma NetEase. Mein Team hat ein Flutter-Entwicklungstool entwickelt: Flr(Flutter-R) , um die gewünschte Funktion zu unterstützen.

Flr ist ein Flutter-Ressourcen-Manager-Tool, das Flutter-Entwicklern helfen kann, Assets in pubspec.yaml automatisch anzugeben und eine r.g.dart -Datei zu generieren, die nach ihm R.java in Android mag ändert die Flatter-Projekt-Assets. Mit r.g.dart kann der Flutter-Entwickler das Asset im Code anwenden, indem er auf seine Asset-ID-Funktion verweist, wie zum Beispiel:

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: Ja, es ist genau wie das AAPT (Android Asset Packaging Tool) in Android.

Bisher hat Flr Android Studio Plugin, CLI und VSCode Extension unterstützt:

  1. Flr Android Studio Plugin- Version

  2. Flr CLI- Version

  3. Flr VSCode-Erweiterungsversion

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen