【发布时间】: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没有理由。它的旧习惯。我报告了您提供的链接中的错误。谢谢