flutter - 无法在 Flutter 项目中加载资产
问题描述
我对 Flutter 还很陌生,到目前为止,我发现一切都非常容易和愉快,但现在我被困在一些看起来非常简单的事情上——我似乎无法使用本地资产。
当我无法加载本地资产 mp3 文件时,我被困在 audioplayers 包的教程上,即使使用教程的代码也是如此。我会得到:FlutterError 无法加载资产:(assets/audio.mp3)。我检查了我的 pubspec.yaml,一切都正确且缩进正确。该文件肯定位于我的资产文件夹中它应该位于的位置。我很沮丧,并想我会做一个更简单的测试。我尝试运行图像小部件教程中的代码,指向资产文件夹中的 .png 文件。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
u /override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text("Image from assets"),
),
body: Image.asset('Capture.PNG'), // <-- image
),
);
}
}
虽然它不会崩溃,但它只是不显示照片。我看到 AppBar 和灰色屏幕。该文件位于正确的位置(project_file > project_file > assets)
文件命名正确(Capture.PNG)
pubspec.yaml 指定照片:
flutter:
assets:
- assets/Capture.PNG
我尝试过冷重启模拟器,我在仿真之前运行了flutter clean和flutter pub get,我重新启动了我的计算机,我添加了另一个目录(/images)然后删除了它。我尝试使用 .jpg 而不是 .png 文件,但没有任何效果。我一直希望在某个地方找到人为错误,但我已经经历了很多次,这似乎不太可能。我似乎无法加载一张简单的照片,更不用说播放 mp3 了。
解决方案
将其替换为:
Image.asset('assets/Capture.PNG')
推荐阅读
- pentaho - 如何在 Pentaho 8.0 CE 中实现这个特性?
- javascript - 如何通过ajax结合字符串发送表单数据?
- database - 如何在库存系统中处理数量/库存监控?
- android - Xamarin Forms、sqlite-net-pcl、Android 数据库文件位置
- c# - Ajax:从 asp.net mvc 中的数据库中删除记录而不重新加载页面
- java - 如何完全停止线程的执行
- ios - 将文本字段数除以 100 - swift iOS
- sql - 从sql表列中修剪前后的字符
- perl - perl 跳转到循环中的特定行
- webseal - 后端应用程序如何验证 webseal 标头?