首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在颤振中显示图像一次。

在颤振中显示图像一次。
EN

Stack Overflow用户
提问于 2019-11-03 01:32:24
回答 6查看 3.6K关注 0票数 3

当我在文件中设置图像并将其设置在资产中时,我遇到了颤振Image.assets的问题:

“颤振:用途-材料-设计:真正的资产:

  • images/facebook.png`

当我把它写进我的代码时:

代码语言:javascript
复制
Center(
    child: Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Image.asset(
          "images/facebook.png"

        ),
        Text(
          '$_counter',
          style: Theme.of(context).textTheme.display1,
        ),
      ],
    ),
  ),

并运行它,它运行良好,但当我第二次运行代码时,它没有显示,这是我得到的错误:

图像资源服务╞════════════════════════════════════════════════════I/

(4784)捕获的══╡异常:解析图像时抛出以下断言: I/flutter ( 4784):无法加载资产: AssetManifest.json。。。I/颤振( 4784):#381 (package:flutter/src/widgets/binding.dart:969:5) I/ RenderObjectToWidgetElement.mount ( 4784):#382 RenderObjectToWidgetAdapter.attachToRenderTree.(package:flutter/src/widgets/binding.dart:915:17) I/颤振( 4784):#383 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2328:19) I/颤振( 4784):#384 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:914:13) I/颤振( 4784):#385 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:795:7) I/颤振( 4784):#386(package:flutter/src/widgets/binding.dart:845:7) I/ runApp ( 4784):#387 main (软件包:runApp_app/main.dart:4:16)i/颤振( 4784):#388 _runMainZoned.(飞镖:ui/Hooks.DAT:229:25)I/颤振( 4784):#393 _runMainZoned。(飞镖:ui/Hooks.DAT:221:5)I/颤振( 4784):#394

_startIsolate。(dart:isolate-patch/isolate_patch.dart:305:19) I/颤振( 4784):#395 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12) I/_RawReceivePortImpl._handleMessage( 4784):(从包飞镖中删除7帧)I/颤振( 4784):图像提供者: AssetImage(bundle: null,名称:“_RawReceivePortImpl._handleMessage/facebook.png”)I/_RawReceivePortImpl._handleMessage( 4784):图像配置: ImageConfiguration(bundle: PlatformAssetBundle#b5447(),devicePixelRatio: 1.5 )I/颤振( 4784):地区: en_US,textDirection: TextDirection.ltr,平台: android) I/颤振( 4784):════════════════════════════════════════════════════════════════════════════════════════════════════

EN

回答 6

Stack Overflow用户

发布于 2019-11-03 02:00:21

看看这个

代码语言:javascript
复制
assets:
   - images/facebook.png

确保你有相同的空间,就像这样

代码语言:javascript
复制
flutter:

[2 whitespaces or 1 tab]assets:
[4 whitespaces or 2 tabs]- images/facebook.png

每一个空间都很重要

票数 1
EN

Stack Overflow用户

发布于 2019-11-03 02:22:18

我的代码:

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'dart:io';
import 'package:image_picker/image_picker.dart';
void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or simply save your changes to "hot reload" in a Flutter IDE).
        // Notice that the counter didn't reset back to zero; the application
        // is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'myApp'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  File imageFile;
  int _counter = 0;
  Color red = Colors.red;
   _incrementCounter() async{
     var picture = await ImagePicker.pickImage(source: ImageSource.camera);

    this.setState(() {
      // This call to setState tells the Flutter framework that something has
      // changed in this State, which causes it to rerun the build method below
      // so that the display can reflect the updated values. If we changed
      // _counter without calling setState(), then the build method would not be
      // called again, and so nothing would appear to happen.
      imageFile = picture;
      _counter++;
      print("work");
    });
  }

  @override
  Widget build(BuildContext context) {
    // This method is rerun every time setState is called, for instance as done
    // by the _incrementCounter method above.
    //
    // The Flutter framework has been optimized to make rerunning build methods
    // fast, so that you can just rebuild anything that needs updating rather
    // than having to individually change instances of widgets.
    return Scaffold(
      appBar: AppBar(
        // Here we take the value from the MyHomePage object that was created by
        // the App.build method, and use it to set our appbar title.
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Image.asset(
              "images/facebook.png"

            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.display1,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}

我的pubspec.yaml:

代码语言:javascript
复制
name: flutter_app
description: A new Flutter application.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  image_picker:


  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2

dev_dependencies:
  flutter_test:
    sdk: flutter


# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:
  uses-material-design: true
  assets:
   - images/

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages
票数 0
EN

Stack Overflow用户

发布于 2019-11-03 02:24:10

确保在pubspec.yaml中使用2或4个空格(避免制表符)作为缩进。

你的pubspec.yaml肯定是这样的

代码语言:javascript
复制
flutter:
  uses-material-design: true
  assets:
    - images/facebook.png

不是这样的

代码语言:javascript
复制
flutter:
  uses-material-design: true
  assets:
      - images/facebook.png # error

或者像这样

代码语言:javascript
复制
flutter:
  uses-material-design: true
  assets:
  - images/facebook.png # also error

flutter clean

flutter pub get

在你的航站楼

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58676731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档