【发布时间】:2021-08-08 18:34:24
【问题描述】:
我已阅读 https://flutter.dev/docs/development/ui/assets-and-images#asset-images-in-package-dependencies 和 Flutter - Read text file from assets 并应用了所有内容,但我的代码仍然无法正常工作......
为此我打开了一个新项目,在主文件夹中我创建了资产和文件:
pwd
/home/bboett/AndroidStudioProjects/examen_companion
bboett@hayate:~/AndroidStudioProjects/examen_companion$ ls -l assets/
insgesamt 4
-rw-r--r-- 1 bboett bboett 10 19. Mai 15:14 test.txt
bboett@hayate:~/AndroidStudioProjects/examen_companion$ cat assets/test.txt
Hello!!
然后,不信任 android studio,我用 vi 检查,在 pubspec.yaml 中一切正常:
文件以:
结尾flutter:
uses-material-design: true
assets:
- assets/
我替换了空格,在uses和assets之前有2个空格:在-assets之前有4个空格...
在我更改的 _MyHomePageState 类中:
@override
Widget build(BuildContext context)
{
AssetBundle bundle = DefaultAssetBundle.of(context);
return FutureBuilder<String>(
future: bundle.loadString("assets/test.txt"),
builder: (context, AsyncSnapshot<String> snapshot)
{
if (snapshot.hasData) { return Text(snapshot.data.toString()); }
else { return CircularProgressIndicator(); }
}
);
}
不起作用....我从来没有退出进度指示器.... 所以直接在我添加的主要内容中:
void main() async {
print(await rootBundle.loadString("assets/test.txt"));
runApp(MyApp());
}
然后崩溃:
Launching lib/main.dart on Linux in debug mode...
Building Linux application...
Debug service listening on ws://127.0.0.1:41355/L-ev6_eNIlI=/ws
Syncing files to device Linux...
[ERROR:flutter/lib/ui/ui_dart_state.cc(199)] Unhandled Exception: Null check operator used on a null value
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:222:39)
#1 AssetBundle.loadString (package:flutter/src/services/asset_bundle.dart:68:33)
#2 CachingAssetBundle.loadString.<anonymous closure> (package:flutter/src/services/asset_bundle.dart:165:56)
#3 _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:311:23)
#4 CachingAssetBundle.loadString (package:flutter/src/services/asset_bundle.dart:165:27)
#5 main (package:examen_companion/main.dart:9:26)
我在运行之前更改了任何东西后做了一个颤抖的清洁.....
版本是:
flutter upgrade
Flutter is already up to date on channel beta
Flutter 2.2.0-10.3.pre • channel beta • https://github.com/flutter/flutter.git
Framework • revision 06e2fd6357 (vor 11 Tagen) • 2021-05-08 11:28:22 -0700
Engine • revision a123e75c60
Tools • Dart 2.13.0 (build 2.13.0-211.14.beta)
flutter doctor 也运行正常,哦,我在 linux 或 android 上也有同样的错误,所以不是设备....
所以我对如何完成这项工作一无所知,因为我的印象是遵循了文档和以前的帮助:(
顺便说一句,我认为颤振现在是空的,安全的......无论如何,我该如何让它工作?
提前致谢
[edit]:甚至更陌生....我替换了
//future: bundle.loadString("assets/test.txt"),
future: bundle.loadString('AssetManifest.json'),
得到了:
flutter: {"assets/test.txt":["assets/test.txt"],"packages/cupertino_icons/assets/CupertinoIcons.ttf":["packages/cupertino_icons/assets/CupertinoIcons.ttf"]}
所以文件在那里???为什么我无法打开/获取它??
[ed2]:好的,我不明白......我直接在 main 中尝试了这个:
print(await rootBundle.loadString('AssetManifest.json'));
并且由于 null 异常而崩溃了....
【问题讨论】: