Flutter 加载本地文件在Android设备报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter 加载本地文件在Android设备报错相关的知识,希望对你有一定的参考价值。

参考技术A 项目中在播放本地视频时,在ios设备没有问题,但是在android设备报错 FileNotFoundException,具体报错日志如下:

经过排查发现实例化视频播放器时本地资源路径 'asset' 前面多了一个 ‘/’ :

在iOS设备上没问题,但是在Android上就变成了错误日志中的 flutter_assets//asset/video/1.mp4 ,变成了2个 / ,去掉 asset 前面的 / 即可。

Flutter WebView加载本地html的问题

参考技术A 最近项目中,用到了flutter中的webview加载带有echarts控件的html文件,但是发现图表一直无法显示,通过查询相关资料,分析apk包文件,知道了是由于flutter项目中的文件打包后的路径发生变化,造成找不到相关依赖,特此记录一下,使用下面这个方法便可以解析出Android和IOS打包后的apk中资源文件的实际位置。

例如,你的资源文件是在flutter项目的根目录下的 'assets/files/echart-pie.html',
那 'getAssetsPath('assets/files/echart-pie.html')'才是打包成apk后,资源文件的实际路径。

按照上面的操作,你会发现在android设备上已经可以正常显示本地html页面了,但是IOS设备上还是一脸懵逼;不要慌,这块是由于webview_flutter本来就不支持加载本地文件,这时我们还需要修改下插件IOS部分的源码,FlutterWebView.m文件:

通过以上骚操作,就可以实现webview_flutter在android和ios设备上加载本地html文件了。

最后:推荐一个插件,已经在官方的基础上进行了优化
webview_flutter_plus

以上是关于Flutter 加载本地文件在Android设备报错的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:在连接的设备上运行或构建到 apk 时未加载 Json 文件

Android Studio Flutter Hot Reload热加载无效

Flutter 应用程序在 android studio 模拟器上完美运行,但不会超过物理设备上的加载屏幕

第三节 Flutter Image图片组件的使用

如何在 Flutter 中从 Web 加载和呈现 PDF 文件

Flutter - 获取实际的 Android 设备名称