Сбой приложения при переходе на определенную страницу с помощью 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'
       }

тогда это работает для меня

Другие вопросы по тегам