无法使用平台通道将数据从本机android扑过来?

问题描述

它将以下内容打印到控制台

I/System.out: [{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20181028-WA0004.mp3,file_name=AUD-20181028-WA0004.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20200507-WA0009.mp3,file_name=AUD-20200507-WA0009.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20200507-WA0012.mp3,file_name=AUD-20200507-WA0012.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20181028-WA0005.mp3,file_name=AUD-20181028-WA0005.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20180624-WA0001.mp3,file_name=AUD-20180624-WA0001.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20200310-WA0005.mp3,file_name=AUD-20200310-WA0005.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20180904-WA0004.mp3,file_name=AUD-20180904-WA0004.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20200507-WA0011.mp3,file_name=AUD-20200507-WA0011.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20200507-WA0008.mp3,file_name=AUD-20200507-WA0008.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20180807-WA0017.mp3,file_name=AUD-20180807-WA0017.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20181029-WA0000.mp3,file_name=AUD-20181029-WA0000.mp3},{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20200507-WA0010.mp3,file_name=AUD-20200507-WA0010.mp3}]
I/flutter: [{file_path=/storage/emulated/0/WhatsApp/Media/WhatsApp Audio/AUD-20181028-WA0004.mp3,{file_path=/storage/emulated/0/WhatsApp/Media/

第一行是使用MainActivity.kt中的println()打印的 第二行使用flutter中的print()打印

我什至尝试使用Kotlin中的songsList.size和flutter中的songsList.length来获取列表的长度。它在科特林显示14,在颤动显示1464。我知道的一件事是,即使我将结果发送给result.success(songsList),Flutter也无法获得整个列表。 这是Kotlin和flutter的代码

val songsList = getSongsList(Environment.getExternalStorageDirectory().absolutePath)
                println(songsList)
                result.success(songsList.toString())

    private fun getSongsList(rootPath:String) : ArrayList<HashMap<String,String>> {
        val fileList: ArrayList<HashMap<String,String>> = ArrayList()

         try {
            val rootFolder = File(rootPath)
            val files: Array<File> = rootFolder.listFiles() 
            for (file in files) {
                if (file.isDirectory) {
                    fileList.addAll(getSongsList(file.absolutePath))
                } else if (file.name.endsWith(".mp3")) {
                    val song: HashMap<String,String> = HashMap()
                    song["file_path"] = file.absolutePath
                    song["file_name"] = file.name
                    fileList.add(song)
                }
            }
            return fileList
        } catch (e: Exception) {
            throw Error("failed to load data $e")
        }
    } 

颤动

  Future<List<Song>> _getSongsList() async {
    print("calling get songs list");
    final String songlist = await platform.invokeMethod("getSongsList");
    print(songlist);
    print(songlist.length);
    var parsed = json.decode(songlist);
     List<Song> sList = parsed.map<Song>((json)=> new Song.fromJson(json)).toList();
    print(sList.toString());
    return sList;
  }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...