【发布时间】:2021-01-04 23:06:45
【问题描述】:
您好,我是 Flutter 的新手。我试图访问设备中可用的文件夹名称。我是 storage_Path 来获取它。这个错误来了。 我的应用程序尝试在 json 文件中获取文件夹的名称。然后 json 文件被解码并传递给映射变量。映射变量被传递给一个列表变量,该变量通过未来的构建器返回。但是当我尝试访问变量 thi发生错误。
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:ext_storage/ext_storage.dart';
import 'package:flutter/services.dart';
import 'package:storage_path/storage_path.dart';
import 'dart:async';
import 'package:permissions_plugin/permissions_plugin.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build (BuildContext context) {
Future<List> hello() async{
String vidPath="";
Map<String,dynamic> map=null;
List<dynamic> data=null;
try {
vidPath = await StoragePath.videoPath; //contains vidoe path and folder name in json format
map=await json.decode(vidPath) as Map;
if(map!=null){
try{
data=map["foldername"] as List;
print("has data");
}
catch(Exception){
print(Exception);
}
}
else{
print("Null data");
}
} on PlatformException {
print(PlatformException);
vidPath = "none";
}
print(data);
return (data);
};
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar:AppBar(
toolbarHeight: 70,
centerTitle: true,
elevation: 10,
backgroundColor: Colors.black,
title: Text("Cassette")),
body:
Center(
child:FutureBuilder<List>(
future: hello(),
builder: (context,AsyncSnapshot<List> snapshot){
List<dynamic> msg=null;
if(snapshot.hasData){
}else if(snapshot.hasError){
print(snapshot.error);
Text("no data1");
}
return(Text(snapshot.data[0]["foldername"]));
}
)
)
),
);
}
}
**Error
I/flutter ( 2680): type 'List<dynamic>' is not a subtype of type 'Map<dynamic, dynamic>' in type cast
**
【问题讨论】:
标签: android json flutter dart flutter-layout