lit*_*nal 8 flutter flutter-dependencies flutter-packages
原问题来自flutter issues 32799
我开发了一个 dart 包,我需要在运行时加载一些 json 文件,但是当我这样做时会发生错误。加载图片没问题,代码:
void main() {
Future<void> loadAsset() async {
String value = await rootBundle
.loadString('lib/src/assets/JsonConfig/test.json');
//Image img = Image.asset('lib/src/assets/default-logo.png');
}
test('adds one to input values', () async {
await loadAsset();
});
}
Run Code Online (Sandbox Code Playgroud)
我的 pubspec.yaml 文件如下:
flutter:
# To add assets to your package, add an assets section, like this:
assets:
- lib/src/assets/default-logo.png
- lib/src/assets/JsonConfig/test.json
- lib/src/assets/
Run Code Online (Sandbox Code Playgroud)
lit*_*nal 17
要从包中加载资源,您应该添加密钥的前缀'packages/<package_name>/'以使其正常工作。
比如如何AssetImage做
/// The name used to generate the key to obtain the asset. For local assets
/// this is [assetName], and for assets from packages the [assetName] is
/// prefixed 'packages/<package_name>/'.
String get keyName => package == null ? assetName : 'packages/$package/$assetName';
Run Code Online (Sandbox Code Playgroud)
'packages/<package_name>/'因此,添加密钥的前缀将在上面的演示中起作用:
String value = await rootBundle
.loadString('packages/<package_name>/lib/src/assets/JsonConfig/test.json');
Run Code Online (Sandbox Code Playgroud)