Путь флаттера _provider get _CastError

#flutter #dart

Вопрос:

Я пытаюсь использовать плагин path_provider: ^2.0.3, чтобы получить путь к каталогу ApplicationDocumentsDirectory на Android. Но я всегда получал одну и ту же ошибку «Произошло исключение. _CastError (оператор проверки Null, используемый для нулевого значения)».

Я называю это прямо в главном. Вот фрагмент кода:

 import 'package:flutter/material.dart';
import 'package:path_provider/path_provider.dart';

void main() async {
  final appDocumentDirectory = await getApplicationDocumentsDirectory(); 
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MyApp',
      theme: ThemeData(
        primaryColor: Colors.green.shade800,
        accentColor: Colors.green.shade600,
      ),
      home: MyAppPage(),
    );
  }
}
 

Исключение возникло внутри исходных файлов path_provider. Кто-нибудь может мне помочь?

Ответ №1:

  1. Попробуйте флаттер очистить, а затем флаттер паб достать. Если это не решит проблему, попробуйте.
  2. Сделайте привязку виджета Flutter. Что — то вроде этого в вашем коде.
 void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  final appDocumentDirectory = await getApplicationDocumentsDirectory(); 
  runApp(MyApp());
}
 

Комментарии:

1. Спасибо! Второй пункт сделал это. Вы также знаете, почему мне нужно вызвать эту инициализацию, чтобы заставить path_provider работать? Я не нашел этой инициализации ни в одном примере фрагментов path_provider….