我假设我们可以将一个flutter应用程序嵌入另一个应用程序中,例如,如果我有一个可重复使用的菜单,其中包含要在多个应用程序中使用的图像。
因此,FlutterAppA引用FlutterAppB,并包含在FlutterAppA的pubspec.yaml中。 FlutterAppB将图像包含在其资产文件夹中,并在pubspec文件中声明,并定义了一个显示该资产的小部件。我想从B访问该小部件(显示包含资产的小部件)
B的pubspec
flutter:
assets:
- assets/smile.gif
A的pubspec
dependencies:
flutter:
sdk: flutter
flutter_app_b:
path: ../flutter_app_b/
B单独运行时,将显示图像。
class MyApp extends StatelessWidget {
Widget build(BuildContext context) => MaterialApp(
home: SmileAssetImage());
}
class SmileAssetImage extends StatelessWidget {
Widget build(BuildContext context) => Image.asset('assets/smile.gif');
}
但是,在FlutterAppA中访问该资产时,它找不到资产,并且抛出“无法加载资产异常”。
资产是否放置在正确的位置,应该同时位于资产文件夹和/或两个pubspec文件夹中?
答案 0 :(得分:0)
没错,似乎应该在实际运行的任何应用程序中都包含资产并声明资产(如果运行A,则需要在应用程序A中定义资产,如果运行B,则必须在应用程序B中定义资产)。 flutter clean
命令似乎是必需的