Пакет: flutter_pdfview
Мое приложение вылетает, когда загрузка pdf завершена в apk, который я создаю с помощью flutter apk build .
При той же операции при отладке после завершения загрузки консоль выдает ошибку, но не дает сбоев, и pdf_viewer работает нормально.
W/System (31159): A resource failed to call release.
Пожалуйста, предложите, что я могу сделать, чтобы мое приложение перестало работать sh после скачивания файла.
Код такой
import 'dart:async';
import 'package:firebase_storage/firebase_storage.dart';
import 'package:flutter/material.dart';
import 'package:flutter_pdfview/flutter_pdfview.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
class PdfViewerPage extends StatefulWidget {
final name;
final title;
PdfViewerPage({this.name, this.title});
@override
_PdfViewerPageState createState() => _PdfViewerPageState();
}
class _PdfViewerPageState extends State<PdfViewerPage> {
bool loading = true;
String localfile;
int current = 1;
int total;
Future<String> loaddata() async {
var dir = await getTemporaryDirectory();
File file = new File(dir.path + widget.name);
await FirebaseStorage()
.ref()
.child(widget.name)
.getData(50000000)
.then((value) async {
file.writeAsBytes(value);
}).catchError((onError) {
Fluttertoast.showToast(msg: onError);
});
return file.path;
}
@override
void initState() {
super.initState();
loaddata().then((value) {
setState(() {
localfile = value;
loading = false;
});
});
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
appBar: AppBar(
title: Text(widget.title, style: TextStyle(color: Colors.black)),
),
body: loading
? Center(
child: CircularProgressIndicator(),
)
: PDFView(
filePath: localfile,
fitEachPage: true,
onPageChanged: (t, c) {
setState(() {
current = t + 1;
total = c;
});
},
),
floatingActionButton: total != null
? FloatingActionButton.extended(
backgroundColor: Colors.white,
onPressed: () {},
label: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text(current.toString()),
SizedBox(
width: 20,
),
Text(total.toString())
],
))
: Container(),
));
}
}