Я открыл для этого новый проект, в основной папке я создал ресурсы и файл:
Код: Выделить всё
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!!
файл заканчивается на:
Код: Выделить всё
flutter:
uses-material-design: true
assets:
- assets/
в классе _MyHomePageState я изменил:
Код: Выделить всё
@override
Widget build(BuildContext context)
{
AssetBundle bundle = DefaultAssetBundle.of(context);
return FutureBuilder(
future: bundle.loadString("assets/test.txt"),
builder: (context, AsyncSnapshot 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. (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 теперь нулевой, безопасный... в любом случае, как мне заставить это работать?
Заранее спасибо
[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]: ок, я не понимаю..... я попробовал это прямо в главном:
Код: Выделить всё
print(await rootBundle.loadString('AssetManifest.json'));
Подробнее здесь: https://stackoverflow.com/questions/676 ... rom-assets
Мобильная версия