Невозможно загрузить ресурс во флаттере - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь прочитать файл в приложении флаттера.

Файл существует в:

/assets/timezone/data/2019b.tzf

Мой pubspec содержит:

- assets/timezone/data/2019b.tzf

Мойвызовы кода дротика:

rootBundle.load('packages/timezone/data/2019b.tzf');

Флаттер возвращает следующее:

Exception has occurred.
FlutterError (Unable to load asset: assets/timezone/data/2019b.tzf)

Модульный тест

import 'dart:typed_data';

import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';

void main() {
  group("Test Load", () {
    test("load", () async {
      try {
        ByteData byteData =
            await rootBundle.load('assets/timezone/data/2019b.tzf');

          print("loaded successfully size: ${byteData.buffer.lengthInBytes}");
      } catch (e) {
        print(e);
      }
      print("done");
    });
  });
}*

pubspec.yaml

name: regions
description: A new Flutter project.

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

dev_dependencies:
  flutter_test:
    sdk: flutter

flutter:
  uses-material-design: true
assets:
    - assets/timezone/data/2019b.tzf

Дерево каталогов:

├── assets
│   └── timezone
│       └── data
│           ├── 2019b.tzf
├── lib
├── pubspec.yaml
├── test
│   └── region_test.dart

1 Ответ

0 голосов
/ 01 октября 2019

Я думаю, вы можете использовать rootBundle.load('assets/timezone/data/2019b.tzf') только в своем приложении.

В тестах вы можете сделать это:

final bytes = File('assets/timezone/data/2019b.tzf').readAsBytesSync();
final byteData = ByteData.view(bytes.buffer);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...