我已经构建了一个足够复杂的 flutter 应用程序,在我开始从位于 AWS 上的 api 获取图像之前,一切都运行良好。但是在使用实际数据填充 image.network 小部件和 cached_network_image 后,我开始随机出现大量崩溃,并且在导航到其他包含图像的页面时出现更多崩溃。
Flutter 没有向我显示任何错误,仅显示“与设备的连接丢失”。
我正在 android 和 iOS 设备上测试这个应用程序,它是一样的:很多崩溃。
每个图像的大小约为 200-400 KB,但即使我在屏幕上显示其中 6 个图像,也会发生崩溃。
起初我不知道崩溃是由图像引起的,所以我尝试了很多方法并更改了很多代码。就像使我的大多数小部件无状态一样,尝试将 Cached_Network_Image 更改为 Image.Network 小部件,使小部件变小,以便在处于设置状态时重建不会占用大量内存。我还尝试使用 devTools 来诊断问题以了解 veil。
devTools 仅在应用程序崩溃之前显示内存激增。
我现在确定这些图像是导致这些崩溃的原因。
这是 main.js 中的代码,不包括 import ,但如果需要,我很乐意提供。
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await allTranslations.init();
User user = await getLocalUserObject();
runApp(Bestiee(user));
}
class Bestiee extends StatefulWidget {
User user;
Bestiee(this.user);
@override
_BestieeState createState() => _BestieeState();
}
class _BestieeState extends State<Bestiee> {
SpecificLocalizationDelegate _localeOverrideDelegate;
String currentLocal = "en";
Widget startScreen; …Run Code Online (Sandbox Code Playgroud) 嗨,我有一个类,其中嵌套了其他类。我想将这个对象转换为 JSON 字符串并将其发送到服务器。
我从堆栈溢出和谷歌搜索中尝试了很多答案。没有充分回答我的问题。
任何帮助是赞赏的家伙。
这是我的模型
class Place {
String name;
String description;
List<PhoneNumber> phoneNumbers;
List<String> tags;
GPSCoordinante gpsCoordinates;
List<Service> services;
List<Album> albums;
SocialMedia socialMedia;
List<Comment> comments;
List<String> imageURLArray;
int rating;
int shares;
int favorites;
int views;
String category;
String subcategory;
WorkingHour workingHours;
bool deleted;
double distanceToUser;
bool isApproved;
String address;
List<String> coverImages;
Place({
this.name,
this.description,
this.phoneNumbers,
this.tags,
this.gpsCoordinates,
this.services,
this.albums,
this.socialMedia,
this.comments,
this.imageURLArray,
this.rating,
this.shares,
this.favorites,
this.views,
this.category,
this.subcategory,
this.workingHours,
this.deleted,
this.distanceToUser,
this.isApproved ,
this.address,
this.coverImages,
});
factory Place.fromJson(Map<String, …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
widget.items.sort((a, b) {
await getItemDistance(a, true);
await getItemDistance(b, false);
return (itemADistance)
.compareTo(itemBDistance);
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试根据从 getItemDistance 返回的值对 widget.items 列表进行排序。但是,我收到一条红色波浪线的错误消息,上面写着:
await 表达式只能在异步函数中使用
当我尝试将 async 添加到 sort 方法时,我得到另一条红色波浪线,上面写着:
不能将参数类型“Future Function(Item, Item)”分配给参数类型“int Function(Item, Item)”
我该如何解决这个困境伙计们?:) 谢谢