Flutter не может загрузить текст из ресурсовAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Flutter не может загрузить текст из ресурсов

Сообщение Anonymous »

Я прочитал https://flutter.dev/docs/development/ui ... endentness и Flutter - Прочитайте текстовый файл из ресурсов и применил все, что было, но мой код все еще не работает....
Я открыл для этого новый проект, в основной папке я создал ресурсы и файл:

Код: Выделить всё

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!!
затем, не доверяя андроид-студии, я проверил с помощью vi, что в pubspec.yaml все в порядке:
файл заканчивается на:

Код: Выделить всё

flutter:
uses-material-design: true
assets:
- assets/
я заменил пробелы на 2 пробела перед использованием и активами: и 4 перед активами...
в классе _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 Doctor тоже работает нормально, ох, и у меня та же ошибка на Linux или Android, так что это не устройство....
поэтому я совершенно не понимаю, как заставить это работать, так как у меня сложилось впечатление, что я следовал документации и предыдущей помощи :(
Кстати, я думал, что 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»