Сбой приложения при переходе на определенную страницу с помощью Navigator.push()
Недавно я создал приложение, которое извлекает контент из wordpress. все работает нормально. Мне нужно было добавить функцию сохранения контента. Я использую Hive и Hive flutter для сохранения содержимого. В отладочной сборке он работает нормально, но в сборке выпуска, когда я перехожу на страницу загрузки, мое добавление зависает. Я попытался предоставить разрешение на хранение.
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
import 'package:hive_flutter/hive_flutter.dart';
import 'package:songslyric/main.dart';
import 'contentcard.dart';
class FavScreen extends StatefulWidget {
FavScreen({Key key}) : super(key: key);
@override
_FavScreenState createState() => _FavScreenState();
}
class _FavScreenState extends State<FavScreen> {
Box box;
List favlist = [];
List obj = [];
openBox() async {
box = await Hive.openBox("favourite");
return Future.value(box);
}
getfavCache() async {
favlist.clear();
setState(() {
favlist = box.toMap().values.toList();
for (var data in favlist) {
obj.add(data);
}
});
return obj;
}
@override
void initState() {
// getfavCache();
super.initState();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: openBox(),
builder: (context, snap) {
Loading();
if (snap.hasData) {
return FutureBuilder(
future: getfavCache(),
builder: (context, snapshot) {
return ValueListenableBuilder(
valueListenable: Hive.box(' ').listenable(),
builder: (context, Box box, _) {
if (box.values.length > 0) {
return ListView.builder(
itemCount: box.values.length,
itemBuilder: (context, data) {
return Contentcard(
id: box.values.toList()[data]["id"],
url: box.values
.toList()[data]["url"]
.toString(),
content: box.values
.toList()[data]["content"]
.toString(),
title: box.values
.toList()[data]["title"]
.toString(),
date: box.values
.toList()[data]["date"]
.toString(),
);
});
} else {
return Center(
child: Text(
"Empty!",
style: TextStyle(color: Colors.grey, fontSize: 20),
));
}
});
});
}
if (snap.hasError) {
return Loading();
}
return Loading();
});
}
}
1 ответ
вам нужно включить прогард, чтобы он работал в режиме релиза. перейти к android> приложение>build.gradle
release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),
'proguard-rules.pro'
}
тогда это работает для меня