【问题标题】:On Flutter Parsing Json in The Background fails关于 Flutter 在后台解析 Json 失败
【发布时间】:2018-09-28 10:00:11
【问题描述】:

我尝试在https://flutter.io/cookbook/networking/background-parsing/ 的后台实现解析 JSON,但出现以下错误。使用 Android Emulator 时也出现同样的错误。

我正在使用 macOS HighSierra。我安装了 IntelliJ 和 Fluter 和 Dark 插件。我在 Flutter 上测试了大多数示例,并且一切正常。我还创建了一个演示及其工作。我不明白为什么这不起作用。请问有什么帮助吗?

我正在使用的代码:

import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:http/http.dart' as http;


// JSON::WEATHER 
Future<String> getWeatherData() async {
  var response = await http.get(
      Uri.encodeFull("http://api.openweathermap.org/data/2.5/forecast?q=San+Francisco&units=metric&APPID=14cc828bff4e71286219858975c3e89a"),
      headers: {
        'Accept': 'application/json'
      }
  );

  this.setState(() {
     weatherData = json.decode(response.body);
  });

  return 'Success!';
}


@override
void initState() {
  // TODO: implement initState
  super.initState();;
  this.getWeatherData();
}


// USAGE
new Text(
         weatherData['list'][0]['main']['temp_min'].toString(),
         style: new TextStyle(
            fontSize: 10.0,
            fontWeight: FontWeight.w400,
            color: Colors.white,
         ),
),

在调试模式下在 SM G935F 上启动 lib/main.dart... 正在初始化梯度... 解决依赖关系... 运行“gradlew assembleDebug”... 内置 build/app/outputs/apk/debug/app-debug.apk (31.4MB)。 I/FlutterActivityDelegate(26125): onResume 将当前活动设置为此 D/libGLESv2(26125):STS_GLApi:DTS 不允许用于包:com.yourcompany.parsingjsonintheackground 正在将文件同步到设备 SM G935F... F/flutter(26125):[致命:flutter/fml/message_loop.cc(23)]检查失败:循环!= nullptr。 MessageLoop::EnsureInitializedForCurrentThread 没有被调用 消息循环使用之前的线程。 F/libc (26125):致命信号 6 (SIGABRT),tid 26165 (1.ui) 中的代码 -6 * * 构建指纹:'samsung/hero2ltexx/hero2lte:7.0/NRD90M/G935FXXS2DRC3:user/release-keys' 修订:'9' ABI:'arm64' pid:26125,tid:26165,名称:1.ui >>> com.yourcompany.parsingjsonintheackground

【问题讨论】:

  • 请提供允许复制的代码和其他信息。你用的是什么 Flutter 版本?
  • 我明天做
  • @GünterZöchbauer 我用代码更新我的问题...
  • 我认为这是一个错误。如果您创建一个错误报告,如果您可以提供一个 GitHub 存储库以及一个允许重现的项目,那就太好了。您还需要注意 weatherData// USAGE 中的 null
  • @GünterZöchbauer。 tt没有理由。它的旧习惯。我报告了您提供的链接中的错误。谢谢

标签: json parsing flutter


【解决方案1】:

我在您打开的相关错误中回答: https://github.com/flutter/flutter/issues/16738

【讨论】:

  • 我也看到了未等待的未来的问题,但是对于访问 Future 而不是实际值,错误消息似乎有点奇怪,你不觉得吗?跨度>
  • @GünterZöchbauer 我很早就获得了价值。因此,在我将天气部分移动到单独的小部件中后,它按预期工作。
  • @GünterZöchbauer 我从上述仓库运行代码时遇到的错误更有帮助:` 构建 MyHomePage(dirty, state:` _MyHomePageState#f6428):`在 null 上调用了方法“[]”。` `Receiver: null` ` 尝试调用:[]("list")` ` 当抛出异常时,这是堆栈:` ` #0 Object.noSuchMethod` @987654323 @`#1 _MyHomePageState.buildWeather`(file:///Users/mit/tmp/ntmsweather/lib/main.dart:124:38)
  • @MichaelThomsen 这更像我的预期
猜你喜欢
  • 1970-01-01
  • 2016-05-31
  • 2015-10-05
  • 2020-02-05
  • 1970-01-01
  • 2015-01-14
  • 2021-03-20
  • 2015-10-19
  • 2015-01-19
相关资源
最近更新 更多