如何解决使用 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(),snapshot) {
return ValueListenableBuilder(
valueListenable: Hive.box(' ').listenable(),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();
});
}
}
解决方法
您需要启用 proguard 才能使其在发布模式下工作。转到 android>app>build.gradle
release {
signingConfig signingConfigs.release
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile(
'proguard-android-optimize.txt'),'proguard-rules.pro'
}
那么这对我有用
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。