测试未使用与Flutter本地程序包中应用程序相同的资产

3okqufwl  于 2022-12-30  发布在  Flutter
关注(0)|答案(1)|浏览(152)

我将应用程序的登录界面移到了本地包中,该界面上的图像仍然显示,并且没有更改其路径('assets/images/logo.png')。但是当我在包中添加小部件测试时,出现了错误:* * 无法加载资产**。
项目结构如下:

|-- assets
    |-- images
        |-- logo.png     <-- the image
|-- lib
|-- packages
    |- login_screen      <-- the local package

以及pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  login_screen:
    path: packages/login_screen

flutter:
  assets:
    - assets/images/

login_screen.dart

class LoginScreen extends StatelessWidget {
  const LoginScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        margin: const EdgeInsets.all(50),
        child: Column(
          children: [
            Image.asset('assets/images/logo.png'),
            Spacer(),
            OutlinedButton(onPressed: (){}, child: Text('Login')),
          ],
        ),
      ),
    );
  }
}

我做的第一件事是把图像移到包里,更新它的pubspec.yaml来使用这个资产,这修复了测试问题,但是破坏了应用程序,它再也找不到这个资产了。
我确实读了很多书来理解Flutter中的包是如何工作的,但是我做不到。让应用程序和测试都工作的唯一方法是复制资产。
我错过什么了吗?

mrfwxfqh

mrfwxfqh1#

添加新资源后,可以尝试以下步骤:
1.停止调试或从手机或模拟器卸载应用程序

1.扑干净,扑酒馆得到
1.开始调试

相关问题