Eliminación de AssetManifest.json
Las aplicaciones construidas de Flutter ya no incluirán un archivo de recursos AssetManifest.json.
Resumen
#Las aplicaciones de Flutter incluían un archivo de recursos llamado AssetManifest.json.
Este archivo contiene de manera efectiva una lista de recursos.
El código de la aplicación puede leerlo utilizando la API AssetBundle
para
determinar qué recursos están disponibles en tiempo de ejecución.
El archivo AssetManifest.json es un detalle de implementación no documentado.
Ya no lo utiliza el framework y está previsto dejar de
generarlo en una futura versión de Flutter.
Si el código de tu aplicación necesita obtener una lista de los recursos disponibles,
utiliza la API AssetManifest en su lugar.
Guía de migración
#Lectura del manifiesto de recursos desde el código de la aplicación de Flutter
#Antes:
import 'dart:convert';
import 'package:flutter/services.dart';
void readAssetList() async {
final assetManifestContent = await rootBundle.loadString('AssetManifest.json');
final decodedAssetManifest =
json.decode(assetManifestContent) as Map<String, Object?>;
final assets = decodedAssetManifest.keys.toList().cast<String>();
}
Después:
import 'package:flutter/services.dart';
void readAssetList() async {
final assetManifest = await AssetManifest.loadFromAssetBundle(rootBundle);
final assets = assetManifest.listAssets();
}
Lectura de la información del manifiesto de recursos desde código de Dart fuera de una aplicación de Flutter
#La herramienta de CLI de flutter genera un nuevo archivo, AssetManifest.bin.
Este reemplaza a AssetManifest.json.
Este archivo contiene la misma información que AssetManifest.json,
pero en un formato diferente.
Si necesitas leer este archivo desde código que no forma parte de una aplicación de Flutter y,
por lo tanto, no puedes usar la API AssetManifest,
aún puedes analizar el archivo por tu cuenta.
El paquete standard_message_codec
se puede utilizar para analizar el contenido.
import 'dart:io';
import 'dart:typed_data';
import 'package:standard_message_codec/standard_message_codec.dart';
void main() {
// The path to AssetManifest.bin depends on the target platform.
final pathToAssetManifest = './build/web/assets/AssetManifest.bin';
final manifest = File(pathToAssetManifest).readAsBytesSync();
final decoded = const StandardMessageCodec()
.decodeMessage(ByteData.sublistView(manifest));
final assets = decoded.keys.cast<String>().toList();
}
Ten en cuenta que AssetManifest.bin es un detalle de implementación de Flutter.
Leer este archivo no es un flujo de trabajo oficialmente compatible.
El contenido o el formato del archivo podrían cambiar en
una futura versión de Flutter sin previo aviso.
Timeline
#AssetManifest.json ya no se generará a partir del
cuarto lanzamiento estable después de 3.19 o un año después del lanzamiento de 3.19,
lo que ocurra más tarde.
Referencias
#Issues relevantes:
- Al compilar una aplicación de Flutter, la herramienta flutter genera un
archivo
AssetManifest.jsonque no es utilizado por el framework (Issue #143577)
PR relevante:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.