我将应用程序的登录界面移到了本地包中,该界面上的图像仍然显示,并且没有更改其路径('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中的包是如何工作的,但是我做不到。让应用程序和测试都工作的唯一方法是复制资产。
我错过什么了吗?
1条答案
按热度按时间mrfwxfqh1#
添加新资源后,可以尝试以下步骤:
1.停止调试或从手机或模拟器卸载应用程序
1.扑干净,扑酒馆得到
1.开始调试