如果应用程序作为软件包包含在flutterappA中,那么flutterappB的flutter资产应该放在哪里?

时间:2019-03-24 12:57:43

标签: flutter

我假设我们可以将一个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文件夹中?

1 个答案:

答案 0 :(得分:0)

没错,似乎应该在实际运行的任何应用程序中都包含资产并声明资产(如果运行A,则需要在应用程序A中定义资产,如果运行B,则必须在应用程序B中定义资产)。 flutter clean命令似乎是必需的