我的 Flutter 应用程序有问题。我正尝试在我的 SplashWidget 上加载一个简单的图像,如下所示。
当我执行 flutter run -d chrome
时,图像在 Web (Google Chrome) 上加载得非常好。
现在,当我针对在 Marshmallow (Android 6.0) 上运行的真实 Android 设备(Huawei EVA LO9)进行测试时,出现以下错误:
══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE
╞════════════════════════════════════════════════════
The following assertion was thrown resolving an image codec:
Unable to load asset: images/splash_icon.png
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:227:7)
<asynchronous suspension>
#1 AssetBundleImageProvider._loadAsync
(package:flutter/src/painting/image_provider.dart:667:14)
<asynchronous suspension>
...
Image provider: AssetImage(bundle: null, name: "images/splash_icon.png")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#d1d58(), name:
"images/splash_icon.png", scale: 1.0)
这是我的 SplashWiget
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
class SplashWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: double.infinity,
decoration: BoxDecoration(color: BrandColors.PRIMARY_COLOR),
child: Center(
child: Image(
image: AssetImage("images/splash_icon.png"),
),
),
);
}
}
这是我的 pubspec.yaml
flutter:
uses-material-design: true
assets:
- assets/
我是否需要执行任何特定于 Android 的配置才能使此图像加载到真正的 Android 设备上。我不敢相信我会在这样一件简单的事情上浪费时间。这让人筋疲力尽。
有人请帮助我。
最佳答案
尝试做这样的事情:
Container(
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage("images/splash_icon.png"),
fit: BoxFit.cover,
),
),
)
首先你要看看这是否运行良好,然后应用你的逻辑/风格。
如果这不起作用,请告诉我。
也尝试制作一个 - flutter clean。然后 - flutter run ;)
关于flutter - 图像资源在 Web 上加载良好但在移动设备上加载不佳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66628200/