无法加载资产:lib/assets/background.jpg

时间:2021-02-16 04:41:58

标签: flutter dart

为什么我无法在我的项目中加载背景图片? 无法加载资源:lib/assets/background.jpg

import 'package:flutter/material.dart';

Widget testWidget = new MediaQuery(
    data: new MediaQueryData(), child: new MaterialApp(home: new MyApp()));
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        decoration: BoxDecoration(
          image: DecorationImage(
            image: AssetImage("lib/assets/background.jpg"),
            fit: BoxFit.cover,
          ),
        ),
        child: null /* add child content here */,
      ),
    );
  }
}

文件树

enter image description here

pubspec.yaml

assets:
    - lib/assets/background.jpg

2 个答案:

答案 0 :(得分:3)

不要在 lib 文件夹下创建 3 文件夹。您的资产文件夹结构如下所示。

enter image description here

还有pubspecs.yaml

enter image description here

答案 1 :(得分:0)

我会建议删除此代码:

Widget testWidget = new MediaQuery(
data: new MediaQueryData(), child: new MaterialApp(home: new MyApp()));

将assets文件夹移动到项目根目录并更新pubspec.yaml中的路径

assets:
    - /assets/

更改 MyApp 以使用 MaterialApp 和 HomePage

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

然后将背景图片代码移动到HomePage内的Scaffold

Scaffold(
  body: Container(
    decoration: BoxDecoration(
      image: DecorationImage(
        image: AssetImage('assets/background.jpg'),
        fit: BoxFit.cover,
      ),
    ),
  ),
),