Android 类型';列表<;动态>';不是类型为';UINT8列表

Android 类型';列表<;动态>';不是类型为';UINT8列表,android,flutter,dart,flutter-dependencies,dart-pub,Android,Flutter,Dart,Flutter Dependencies,Dart Pub,我使用了一个名为device\u apps的flatter插件来获取安卓设备上安装的应用程序信息 它返回一个列表,如果我将对象从应用程序强制转换为ApplicationWithIcon,该列表将显示图标 但它重新运行的图标是Uint8列表类型,我想将其保存在本地,稍后在Image.memory()中使用它 如果我直接使用它而不在本地保存,那么它可以作为Image.memory(app.icon)使用。但是当我将图标保存在json文件中并使用它时,它会显示错误: 类型“List”不是类型“Uint

我使用了一个名为
device\u apps
的flatter插件来获取安卓设备上安装的应用程序信息

它返回一个
列表
,如果我将对象从应用程序强制转换为
ApplicationWithIcon
,该列表将显示图标

但它重新运行的图标是Uint8列表类型,我想将其保存在本地,稍后在Image.memory()中使用它

如果我直接使用它而不在本地保存,那么它可以作为Image.memory(app.icon)使用。但是当我将图标保存在json文件中并使用它时,它会显示错误:

类型“List”不是类型“Uint8List”的子类型

如何在本地保存并使用它

导入'dart:async';
导入“dart:convert”;
进口“dart:ffi”;
导入“dart:io”;
导入“dart:键入的_数据”;
进口“包装:颤振/材料.省道”;
导入“package:path_provider/path_provider.dart”;
导入“包:设备应用程序/设备应用程序.dart”;
导入“包:应用程序设置/应用程序设置.dart”;
导入“包:flatter/services.dart”显示根包;
void main(){
runApp(
材料聚丙烯(
标题:“读取和写入文件”,
主页:MyApp(),
),
);
}
常量字符串数据文件='data1.json';
类MyApp扩展了StatefulWidget{
@凌驾
_AppState createState();
}
类_AppState扩展了状态{
字符串数据;
文件路径;
bool\u fileExists=false;
字符串jsonString;
列表_json=[];
列表_jsonshow=[];
列出应用程序的详细信息;
void checkFile()异步{
//检查文件是否存在
字符串dir=(等待getApplicationDocumentsDirectory()).path;
字符串savePath='$dir/$dataFile';
//对于目录:等待目录(savePath).exists();
if(等待文件(savePath).exists()){
打印(“文件存在”);
}否则{
打印(“文件不存在”);
}
}
未来获取\u本地路径异步{
最终目录=等待getApplicationDocumentsDirectory();
打印(directory.path);
返回directory.path;
}
未来获取\u本地文件异步{
最终路径=等待_localPath;
返回文件(“$path/$dataFile”);
}
void appDetail()异步{
打印(“使用“设备应用程序”获取应用程序信息:”;
列出应用程序=等待DeviceApps.getInstalledApplications(
includeSystemApps:true,
includeAppIcons:true,
仅适用于具有启动意图的应用程序:true,
);
打印(“从appDetail()函数应用程序打印应用程序详细信息:”);
//对于(int i=0;i=1
?GridView.builder(
收缩膜:对,
物理:物理(),
滚动方向:轴垂直,
itemCount:_json.length,
gridDelegate:SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount:5,childAspectRatio:2.0),
itemBuilder:(构建上下文,int索引){
返回列(
儿童:[
已展开(子项:文本(_json[index][“appName]”)),
已扩展(子级:Image.memory(_json[index][“icon”]),
],
);
})
:Text(“未找到数据”),
],
));
}
}

我找到了一个愚蠢的解决方案,但我不知道为什么会这样

只需将json[index]['icon']插入变量,然后在Image.memory()中使用它即可

var icon = `_json[index]['icon']` ;

Image.memory(icon)
以下是完整的代码:


导入“dart:async”;
导入“dart:convert”;
进口“dart:ffi”;
导入“dart:io”;
导入“dart:键入的_数据”;
进口“包装:颤振/材料.省道”;
导入“package:path_provider/path_provider.dart”;
导入“包:设备应用程序/设备应用程序.dart”;
导入“包:应用程序设置/应用程序设置.dart”;
导入“包:flatter/services.dart”显示根包;
void main(){
runApp(
材料聚丙烯(
标题:R

  Uint8List _getImageBinary(dynamicList) {
    List<int> intList = dynamicList.cast<int>().toList(); //This is the magical line.
    Uint8List data = Uint8List.fromList(intList);
    return data;
  }